Androidでブロードキャストレシーバーやサービスを一時的に無効にするには?
Androidでブロードキャストレシーバーやサービスを一時的に無効にするにはどうしたらいいだろう。
PackageManagerにsetComponentEnabledSetting()というメソッドがあるので、例えばこんな風にできる。
PackageManagerにsetComponentEnabledSetting()というメソッドがあるので、例えばこんな風にできる。
/**
* 各種コンポーネント(ブロードキャストレシーバーやサービス)を無効・有効にする
*
* @param cxt コンテキスト
* @param cls 無効(有効)にしたいクラス
* @param disabled 無効にするかどうか
*/
public static void disableComponent(Context cxt, Class<?> cls, boolean disabled) {
int newState = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
if (!disabled) {
newState = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
}
ComponentName compName = new ComponentName(cxt, cls);
PackageManager pm = cxt.getPackageManager();
pm.setComponentEnabledSetting(compName, newState, PackageManager.DONT_KILL_APP);
}
コメント
コメントを投稿