在設置應用程序中,我試圖接收有關更改網絡狀態的消息。 它看起來像這樣:如何解決在系統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