Ниже приведен код, который я использую для использования широковещательного приемника: - То, чего я пытаюсь добиться, это 1) Когда пользователь включает / выключает местоположение, когда приложение находится в фоновом режиме, оно должно транслироваться. Я поставил отладчик, но он не вызывается при переходе приложения в фоновый режим. 2) Получить обновленное местоположение, когда приложение находится в фоновом режиме.
В MainActivity. java
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "samples.flutter.dev/battery";
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
.setMethodCallHandler(
(call, result) -> {
GpsLocationReceiver networkstatusreceiver = new GpsLocationReceiver();
IntentFilter intent=new IntentFilter ();
intent.addAction("android.location.PROVIDERS_CHANGED");
registerReceiver(networkstatusreceiver,intent);
// Note: this method is invoked on the main thread.
// TODO
}
);
}
}
GpsLocationReceiver. java
public class GpsLocationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
Log.d("PROVIDERS_CHANGED null", "PROVIDERS_CHANGED null");
}
}
}
Добавлено ниже в manifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<action android:name="android.location.PROVIDERS_CHANGED" />
<receiver android:name=".GpsLocationReceiver">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>