1
我從here得到禁用/啓用廣播接收器的邏輯。無法禁用廣播接收器
@Override
public void onCheckedChanged(CompoundButton v, boolean checked) {
// TODO Auto-generated method stub
if (v == disableBlock) {
manageBlockSetting(checked);
}
}
private void manageBlockSetting(boolean disable) {
Log.e(tag, "Disable : " + disable);
int flag = disable ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED
: PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
ComponentName component = new ComponentName(SettingActivity.this, PhoneCallReceiver.class);
getApplication().getPackageManager().setComponentEnabledSetting(component, flag, PackageManager.DONT_KILL_APP);
editSharedPreferences(StoreConstantValue.SETTING_DISABLE_BLOCK, disable);
}
而在的Manifest.xml
<receiver android:name="com.vsmart.unocaller.blockingservice.PhoneCallReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
當我與android:enabled="false"
部署我可以再啓用它。但是,當我想禁用。什麼都沒有發生,我無法禁用它。它仍然阻止來電。
我的設備是三星Galaxy S2採用Android 2.3.3
任何幫助嗎?謝謝
謝謝,您的解決方案。我會嘗試。 – SaintTail 2013-05-14 04:49:41