В приложении настроек я пытаюсь получить сообщение об изменении состояния сети. Это выглядит следующим образом:Как исправить Вызов метода в системном процессе без квалифицированного пользователя этой ошибки в системном приложении Android?
<receiver android:name="com.android.settings.NetworkStateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
public class NetworkStateReceiver extends BroadcastReceiver
{
public static final String TAG = "NetworkStateReceiver";
public static final String NETWORK_CHANGED_ACTION = "com.android.settings.NetworkStateReceiver.NETWORK_CHANGED";
@Override
public void onReceive(Context context, Intent intent)
{
Log.d(TAG, "Network state changed");
Intent i = new Intent();
i.setAction(NETWORK_CHANGED_ACTION);
context.sendBroadcast(i);
}
}
Из этого приемника я пытаюсь отправить сообщение DeviceInfoFragment, есть приемник, который должен поймать эту передачу:
private BroadcastReceiver mNetwrokStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("NetworkStateReceiver_DEVICE_INFO", "network state changed");
if (isNetworkConnected()) {
Log.d("NetworkStateReceiver_DEVICE_INFO", "network connected");
mHelpPreference.setEnabled(true);
} else {
mHelpPreference.setEnabled(false);
Log.d("NetworkStateReceiver_DEVICE_INFO", "network disconnected");
}
}
};
зарегистрировать его в onResume и разрегистрировать в onPause.
Но я получил ошибку в NetworkStateReceiver в этой строке:
context.sendBroadcast(i);
Вызов метода в системе процесса без квалифицированного пользователя
Есть ли способ это исправить?
Пробовал, не работает – Pein
ли вы предоставить 'разрешение INTERACT_ACROSS_USERS'? – fluffyBatman
Пробовал с разрешением, тот же результат :( – Pein