PhoneGap を 2.9 から 3.1 に更新しました。1つのことを除いて、すべてが正常に機能しているようです。PhoneGap プッシュ プラグインを使用すると、アプリが開いていてもプッシュ通知が届きます。電話の上部に通知アイコンは表示されませんが、振動します。これは、PG 2.9 では発生しませんでした。不足している構成ファイルに設定はありますか?
編集:電話の上部に表示されないのは間違っていました. アプリを終了すると、アプリが閉じられたかのように通知が表示されます。
GCMIntentService がisInForeground
メソッドを削除しました。Eclipse で
Project > src > com.plugin.gcm > GCMIntentService.java
次のコードを追加します。
public boolean isInForeground()
{
ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager
.getRunningTasks(Integer.MAX_VALUE);
if (services.get(0).topActivity.getPackageName().toString().equalsIgnoreCase(getApplicationContext().getPackageName().toString()))
return true;
return false;
}
次に、onMessage メソッドを次のように変更します。
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "onMessage - context: " + context);
// Extract the payload from the message
Bundle extras = intent.getExtras();
if (extras != null)
{
boolean foreground = this.isInForeground();
PushPlugin.sendExtras(extras);
// Send a notification if there is a message
if (extras.getString("message").length() != 0 && !foreground) {
createNotification(context, extras);
}
}
}
AndroidManifest.xml で、次の権限を追加する必要があります。
<uses-permission android:name="android.permission.GET_TASKS" />