2
私はブロードキャスト受信機を無効にする際に問題に直面しています。ブロードキャスト受信機は、着信呼および着信呼を受信する。 私の場合、スイッチがオンのときに、スイッチがオフのときに受信機がデータを受信するはずです。受信機はデータの受信を停止する必要があります。着信コールの受信を停止するには、ブロードキャストレシーバを無効にするにはどうすればよいですか?
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>
レシーバを無効にしたいのですが、レシーバを無効にするにはどうすればよいですか?
、以下のコードは、あなたの問題を解決することができ、これを試してください: - https://stackoverflow.com/questions/6529276/android-how-to-unregister-受信機で作成されたマニフェスト – santoXme
受信機を無効にしたときにあなたのトーストがどのように表示されますか? –
私はその答えを試みました。しかし、私の問題を解決しませんでした。 –