更新PhoneGap现在推送通知不会停止

时间:2013-11-05 22:33:47

标签: android cordova

我从2.9更新了我的PhoneGap到3.1。除了一件事,一切似乎都很好。我使用PhoneGap推送插件,即使应用程序打开,我也会收到推送通知。它不会在手机顶部显示通知图标,但它会振动。 PG 2.9没有发生这种情况。我缺少配置文件中的设置吗?

编辑:我错了他们没有出现在手机的顶部。如果我退出应用程序,通知就会显示为应用程序已关闭。

1 个答案:

答案 0 :(得分: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" />