1

我将 PhoneGap 从 2.9 更新到 3.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 回答