Как зарегистрировать Android Broadcast Reciever в моем приложении QT?

Я хочу зарегистрировать 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 в файле манифеста?
Как я могу решить это?

-1

Решение

Эта проблема решается программной регистрацией BroadcastReciever.

0

Другие решения

Других решений пока нет …