Я пытаюсь определить состояние сети и GPS, и я хочу попросить пользователя включить их, если они отключены.
Это мой первый раз, когда я использую BroadcastReceiver, я прочиталдокументацию и создал этот метод.
Я хочу создать ДИНАМИЧЕСКИЕ ПРИЕМНИКИ, а не STATIC.
Не могли бы вы помочь мне исправить метод, потому что они не работают должным образом, и я незнать, в чем проблема.
// Класс BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
LocationManager locationManager = (LocationManager) context.getSystemService(context.LOCATION_SERVICE);
Intent newintent;
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
newintent = new Intent();
intent.putExtra("Network", "CONNECTIVITY");
context.sendBroadcast(newintent);
}
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
newintent = new Intent();
intent.putExtra("GPS", "GPSPROVIDER");
context.sendBroadcast(newintent);
}
}
}
// Активность, в которой я хочу, чтобы этот приемник работал:
MyBroadcastReceiver broadcastReceiver = new MyBroadcastReceiver();
@Override
protected void onStart() {
super.onStart();
IntentFilter filter = new IntentFilter();
registerReceiver(broadcastReceiver, filter);
Log.d(TAG, "onStart: broadcastReceiver Start");
Bundle extras = getIntent().getExtras();
if (extras != null) {
String newtork = extras.getString("Network");
String gps = extras.getString("GPS");
if(newtork == "CONNECTIVITY" || gps == "GPSPROVIDER"){
Log.d(TAG, "onStart: Something Change");
checkServices();
}
}
}