【发布时间】:2017-06-23 13:16:10
【问题描述】:
我面临禁用广播接收器的问题。广播接收器接收传入和传出的呼叫。 在我的情况下,当开关打开时,接收器应该在开关关闭时接收数据。
switches.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
// sharedPreferences = getApplicationContext().getSharedPreferences("enableApp", Context.MODE_PRIVATE);
// SharedPreferences.Editor editor = sharedPreferences.edit();
// editor.putBoolean(getString(R.string.enable), isChecked);
// editor.commit();
if(isChecked)
{
Toast.makeText(getApplicationContext(), "Enabled", Toast.LENGTH_SHORT).show();
}
else
{
PackageManager pm = DashBoardActivity.this.getPackageManager();
ComponentName componentName = new ComponentName(DashBoardActivity.this, CallReceiver.class);
pm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
Toast.makeText(getApplicationContext(), "cancelled", Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "Disabled", Toast.LENGTH_SHORT).show();
}
}
});
这是我尝试过的代码,我尝试使用包管理器禁用广播接收器。
The broadcast receiver registered in manifestfile
<receiver android:name=".receiver.CallReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
我想在我的活动中禁用接收器。如何禁用接收器?
【问题讨论】:
-
您可以从这里获得帮助:- stackoverflow.com/questions/6529276/…
-
当你禁用接收器时你的 toast 显示什么?
-
我试过那个答案..但没有解决我的问题
-
@Sandeep dhiman 当正在查看已取消的关闭条件吐司消息时
-
检查接收器的状态并在 toast 中显示,如果它被禁用,它将显示 disabled int status = context.getPackageManager().getComponentEnabledSetting(component);