12

GCMアプリケーションを開発しています。デバイスがアイドル状態でないとき(つまり、電源ボタンを押してスリープしているとき)は、すべて正常に動作します。ただし、デバイスがアイドル状態のときにメッセージを送信すると、デバイスがウェイクアップしません。

私は次のことをしました:

  1. サーバーアプリでdelay_while_idleがtrueに設定されていないことを確認しました
  2. メッセージごとに異なる折りたたみキーを使用
  3. デバイスを複数回再起動しました
  4. サーバー側からdelay_while_idleを完全に省略しようとしました-効果はありません

私はAndroid2.2apiレベル8(最低バージョン)をターゲットにしており、Android2.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" /> 

助けてくれてありがとう

4

3 に答える 3

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>
于 2012-07-31T09:02:41.850 に答える
4

delayWhileIdle=false

delay_while_idle : 含まれている場合、デバイスがアイドル状態の場合にメッセージをすぐに送信しないことを示します。
サーバーはデバイスがアクティブになるのを待ってから、各 *collapse_key* 値の最後のメッセージのみが送信されます。オプション。JSONデフォルト値は false で、ブール値である必要があります。

于 2013-03-04T06:23:13.200 に答える