2014-02-17 102 views
0

我在做跨平台的应用程序,我目前的工作是怎么回事实现推送通知。我能够看到来自服务器的消息确认是正面的。Guideliness实现推送通知在Android的

MessageResult:MulticastResult(multicast_id=somenumber,total=1,success=1.failure=0.canonical_ids=0,results:[[messageID=somenumber]]) 

这里success=1消息被成功地推到GCM服务器但IOS它不是一个问题。

在一段时间后我收到通知。我无法跟踪我的移动数据或GCM在哪个区域出错。任何技术人员都面临这种情况?

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.company.mobile" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="18" /> 

    <supports-screens 
     android:anyDensity="true" 
     android:largeScreens="true" 
     android:normalScreens="true" 
     android:resizeable="true" 
     android:smallScreens="true" /> 

    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
    <uses-permission android:name="android.permission.GET_TASKS" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

    <permission 
     android:name="com.company.mobile.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="com.company.mobile.permission.C2D_MESSAGE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.company.mobile.MainActivity" 
      android:configChanges="orientation|keyboardHidden|screenSize" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="com.company.mobile.ScreenOrientation" > 
     </activity> 
     <activity android:name="com.plugin.gcm.PushHandlerActivity" /> 

     <receiver 
      android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 

       <category android:name="com.company.mobile.monitor" /> 
      </intent-filter> 
     </receiver> 

     <service android:name="com.plugin.gcm.GCMIntentService" /> 
    </application> 

</manifest> 
+0

请发表您的客户端代码和清单 – Eran

回答

1

几天后,我发现了这个问题,并提出了解决方案。 GCM是唯一可靠的设备问题。我们需要检查

  • 如果您使用Wi-Fi,请咨询您的网络管理员是否启用推送通知端口。
  • 如果您正在使用移动数据,请检查启用推送通知的设备的设置。 (设置 - >无线网络 - >数据使用情况 - >您的应用程序(启用通知))
  • 需要检查谷歌账号是否正确同步。 (这种情况在我的情况产生的问题)
  • 不要移动数据和Wi-Fi网络之间切换。
  • 最后重启设备。

一些技巧here