我想为启用/禁用的任何类型的移动数据设置接收器,例如3g等。
我在接收时使用此代码...
ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMan.getActiveNetworkInfo();
if (netInfo != null && netInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
Toast.makeText(context, "Mobile data enable", Toast.LENGTH_LONG).show();
}
和清单中的这个coode
<receiver android:name=".BroadcastReceiverforWifiBluetoothData" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
</receiver>
但是在某些设备中它无法正常工作且很多情况下接收器会在一段时间后触发,有时我不会触发Broadcastreceiver的onReceive()?
请帮我解决错误的代码或需要其他一些技巧来解决?
提前致谢...
答案 0 :(得分:0)
试试这段代码,
boolean enabled=prefs.getBoolean(key, false);
int flag=(enabled ?
PackageManager.COMPONENT_ENABLED_STATE_ENABLED :
PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
ComponentName component=new ComponentName(EditPreferences.this, OnBootReceiver.class);
getPackageManager()
.setComponentEnabledSetting(component, flag,
PackageManager.DONT_KILL_APP);