3

つまり、ユーザーのデバイスがダイヤラーのないタブレット (または音楽プレーヤー) ではないことを確認するにはどうすればよいですか?
PS: 私のアプリはダイヤラに入力された数値コードを使用しているため、その存在を確認したいと考えています。

4

2 に答える 2

5

呼び出しを試みる前に、インテント レシーバー/アクティビティが実際に存在するかどうかを確認することは、常に良い方法です。

理由のいくつかは次のとおりです。

インテントが存在しない場合、アプリケーションは強制終了します。インテント レシーバーが存在しない場合は、ユーザーをマーケットにリダイレクトして、必要なアプリケーションをダウンロードすることができます。インテントの存在に応じて、メニュー オプションを表示/非表示にしたい場合があります。

次のスニペットには、 isIntentAvailable() と isActivityAvailable() の 2 つの関数が含まれており、チェックを実行してそれに応じてブール値を返すことができます。

public boolean isIntentAvailable(Context context, String action) {
    final PackageManager packageManager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List resolveInfo =
            packageManager.queryIntentActivities(intent,
                    PackageManager.MATCH_DEFAULT_ONLY);
   if (resolveInfo.size() > 0) {
     return true;
    }
   return false;
}

アクション文字列をパラメータとしてこの関数に渡してから、サードパーティのアプリケーションを起動してください。

于 2013-01-27T13:29:54.023 に答える
1

私が必要としていたもののようです:

public static String TelephonyChecker (Context context) {
        TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
        if(manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE){
            return "Off";
        }else{
            return "On";
        }
    }
于 2013-01-31T09:50:48.313 に答える