1

我想为任何类型的移动数据启用/禁用设置接收器,例如 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();


             }

这个代码在清单中

<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() ?

请帮助我或者我通过错误的代码或者它需要一些其他的技巧来解决?

提前致谢...

4

1 回答 1

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);
于 2013-11-11T09:35:35.090 回答