2012/01/11

プリインアプリの有効・無効を判定する方法


Android4.0より、プリインアプリの有効/無効をユーザがある程度指定できる
ようになりました。

この機能により、「プリインアプリは必ず存在する」という前提が崩れました。
つまりはプリインアプリと連携しようとしても相手先が存在せず、ActivityNotFound
例外等が発生するケースがあり得ます。
# ブラウザやSMSアプリとの連携など

プリインアプリの無効化はAndroid標準で[設定]→[アプリケーション]から
プリインアプリを選択し[無効にする]を選択することで実行できます。

プリインアプリが無効化されているか否かは下記のコードより判断できます。

int state =
    getPackageManager().getApplicationEnabledSetting("com.android.browser");
android.util.Log.e("yuki" , "yuki state=" + state);

有効化中のstateは0(COMPONENT_ENABLED_STATE_DEFAULT)が、
無効化中のstateは2(COMPONENT_ENABLED_STATE_DISABLED)が返されます。
それぞれの値はDeveloperサイトを参照下さい。
参考:Developerサイト

以上です。