Я хочу зарегистрировать broadcastReceiver в моем приложении. Я пишу программу для печати какой-либо строки, когда Wi-Fi закрыт или сеть Wi-Fi перенесена в другую сеть.
Manifest:
<receiver android:name="org.qtproject.example.WifiReceiver" >
<intent-filter android:priority="100">
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Класс Java:
public class WifiReceiver extends BroadcastReceiver
{
String ssid;@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if(info != null && info.isConnected()) {
System.out.println("ashoish");
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
//ssid = wifiInfo.getSSID();
ssid="ashish";//SOME STRING
getinfo(ssid);
}
}
public native static String getinfo(String ssid);
}
заголовочный файл:
JNIEXPORT void JNICALL Java_org_qtproject_example_WifiReceiver_getinfo(JNIEnv * /*env*/,
jobject /*this_obj*/, jstring ssid)
{
qDebug()<<"ssid is"<<ssid;
}
Я ожидаю, когда я закрою свой Wi-Fi вручную или переключусь на другой Wi-Fi вручную, по крайней мере, я получу некоторый результат из-за этой линии System.out.println("ashoish");
Но когда я пытаюсь это сделать, ashoish не печатается, что показывает, что onRecieve () не выполняется.
Есть ли у них проблемы с регистрацией BroadcastReciever в файле манифеста?
Как я могу решить это?
Эта проблема решается программной регистрацией BroadcastReciever.
Других решений пока нет …