我从2.9更新了我的PhoneGap到3.1。除了一件事,一切似乎都很好。我使用PhoneGap推送插件,即使应用程序打开,我也会收到推送通知。它不会在手机顶部显示通知图标,但它会振动。 PG 2.9没有发生这种情况。我缺少配置文件中的设置吗?
编辑:我错了他们没有出现在手机的顶部。如果我退出应用程序,通知就会显示为应用程序已关闭。
答案 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" />