GCM没有唤醒设备

Wil*_*777 12 java android google-cloud-messaging

我开发了一个GCM应用程序.当设备没有空闲时(即通过按电源按钮休眠),一切正常.但是,当我在设备空闲时发送消息时,设备不会唤醒.

我做了以下事情:

  1. 验证服务器应用程序中的delay_while_idle未设置为true
  2. 为每条消息使用不同的折叠键
  3. 多次重启设备
  4. 试图完全从服务器端省略delay_while_idle - 它没有任何效果

我的目标是Android 2.2 api 8级(最低版本),在运行Android 2.3.6的实际设备上进行测试

设备正在使用Wi-Fi,没有SIM卡 - 但在运行时接收信息很好而不是空闲.

这是客户端清单权限部分:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
    android:name="com.tranwall.sdk.device.android.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="basePackage.android.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"  />           
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.INTERNET" /> 
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助

kot*_*oti 4

仅清单文件中的问题。确保以下是清单文件 GCM 的内容

<permission
    android:name="packagename.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="packagename.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<application>
    <receiver 
        android:name="com.google.android.gcm.GCMBroadcastReceiver"
        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="packagename" />
        </intent-filter>
     </receiver>
     <service android:name=".GCMIntentService" android:enabled="true" />
</application>
Run Code Online (Sandbox Code Playgroud)