1

私の質問は[C2DMReg] handleRequest catch java.net.UnknownHostException: android.clients.google.comに関連しています。重複としてマークされている同じタイトルの質問を StackOverflow で見つけました。しかし、言及されている重複は、ここでの問題とは何の関係もありません。これは、C2DM ではなく、新しい GCM に関連しています。

私のコード ソースは、Android API ガイドの GCM チュートリアルからのものです。


デバイスをGCMに登録するための私の機能は次のとおりです。

public void register_device(Context c){
    Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
    registrationIntent.putExtra("app", PendingIntent.getBroadcast(c, 0, new Intent(), 0));
    registrationIntent.putExtra("sender", c.getResources().getString(R.string.SERVER_API_KEY));
    Log.i("GCM", "Starting service for registration Intent");
}

私の BroadCastReceiver クラスは次のとおりです。

public class MyBroadcastReceiver extends BroadcastReceiver {
    public final void onReceive(Context context, Intent intent) {
        Log.i("GCM", "Received broadcast from Intent: " + intent);
        MyIntentService.runIntentInService(context, intent);
        setResult(MainActivity.RESULT_OK, null, null);
    }
}

私のマニフェストファイルには、次のように MyBroadcastReceiver のアクセス許可が含まれています

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
    android:name="com.mangoesmobile.praxis.pusher.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.mangoesmobile.praxis.pusher.permission.C2D_MESSAGE" />

<application>
    <receiver
        android:name=".MyBroadcastReceiver"
        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.mangoesmobile.praxis.pusher" />
        </intent-filter>
    </receiver>
</application>

ログには、register_device function() からのカスタム ログが表示されますStarting service for registration Intent

そして[C2DMReg] handleRequest caught java.net.UnknownHostException: android.clients.google.com タグ付きで表示C2DMRegistrar

Received broadcast from IntentMyBroadcastReceiver からのカスタム ログは表示されません。だから、私が信じている MyBroadcastReceiver に到達することはありません。なぜこれが起こるのか理解できません。

私はエミュレータを使用していません。私は自分のデバイスを使用しており、Google アカウントに登録されています。

4

0 に答える 0