2016-05-31 12 views
0

私はアンドロイドウェブアプリを開発中です。 PhoneGapプッシュプラグインを使用して、デバイス上でプッシュ通知を受信して​​います。アプリケーションマネージャの設定でプッシュ通知が無効になっているかどうかを確認する必要があります。どのように達成するのですか?非ネイティブアンドロイドアプリ - アプリケーションマネージャでプッシュ通知が無効になっているかどうかを確認します。

ありがとうございました。

+0

が提示してくださいませんか私は確認のための参照Javaコードを掲載していますがない にチェックしなければならないものを既に実施しているか、何を問題については難しいと思います。 –

答えて

0

あなたは通知が有効になっているかどうかの.javaクラスまたは通知が有効になっているか

public class NotificationsUtils { 
private static final String CHECK_OP_NO_THROW = "checkOpNoThrow"; 
private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION"; 
public static boolean isNotificationEnabled(Context context) { 

    AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); 

    ApplicationInfo appInfo = context.getApplicationInfo(); 

    String pkg = context.getApplicationContext().getPackageName(); 

    int uid = appInfo.uid; 

    Class appOpsClass = null; /* Context.APP_OPS_MANAGER */ 

    try { 

     appOpsClass = Class.forName(AppOpsManager.class.getName()); 

     Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class); 

     Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION); 
     int value = (int)opPostNotificationValue.get(Integer.class); 

     return ((int)checkOpNoThrowMethod.invoke(mAppOps,value, uid, pkg) == AppOpsManager.MODE_ALLOWED); 

    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } catch (NoSuchMethodException e) { 
     e.printStackTrace(); 
    } catch (NoSuchFieldException e) { 
     e.printStackTrace(); 
    } catch (InvocationTargetException e) { 
     e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 
} 
+0

ありがとうジャック。しかし、私はアンドロイドSDKを使用していません。これは、phonegapアプリケーションです。通知が無効になっているデバイスに通知が送信されたかどうかを知るためにGCMサーバの応答を解釈する方法はありますか? – nexus

+0

しかし、あなたはcordovaカスタムプラグインを介してネイティブ関数を呼び出すことができ、これをチェックすることができます –

+0

私は自分のアプリケーションのデバイス上の通知をオフにしました。このデバイスにプッシュ通知を送信すると、GCMサーバーはそれを成功として報告します。 通知が無効になっているデバイスに通知が送信されたかどうかを知るためにGCMサーバーの応答を解釈する方法はありますか? – nexus

関連する問題