1

PhoneGap を 2.9 から 3.1 に更新しました。1つのことを除いて、すべてが正常に機能しているようです。PhoneGap プッシュ プラグインを使用すると、アプリが開いていてもプッシュ通知が届きます。電話の上部に通知アイコンは表示されませんが、振動します。これは、PG 2.9 では発生しませんでした。不足している構成ファイルに設定はありますか?

編集:電話の上部に表示されないのは間違っていました. アプリを終了すると、アプリが閉じられたかのように通知が表示されます。

4

1 に答える 1

1

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" />
于 2013-11-06T13:49:24.140 に答える