Получить токен устройства Android

Я интегрирую Pushwoosh API для push-уведомлений, для которых мне требуется deviceToken. Как я могу получить это:

Я получаю пустую строку, используя это:

String deviceToken=GCMRegistrar.getRegistrationId(getApplicationContext()); 

Это разрешения, которые у меня есть в моем AndroidMainfest.xml:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
<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.example.gcm.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />

<application ...>
    <receiver
        android:name=".GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.example.gcm" />
        </intent-filter>
    </receiver>
    <service android:name=".GcmIntentService" />
</application>

Это правильный способ получить deviceToken.

2 ответа

Попробуйте приведенный ниже код, надеюсь, он вам поможет

    GCMRegistrar.checkDevice(getApplicationContext());
    GCMRegistrar.checkManifest(getApplicationContext());    

    final String regId = GCMRegistrar.getRegistrationId(this);

Ваш код выглядит отлично, просто сравните ваш AndroidManifest с кодом ниже, чтобы убедиться, что вы ничего не пропустили -

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
<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.example.gcm.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />

<application ...>
    <receiver
        android:name=".GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.example.gcm" />
        </intent-filter>
    </receiver>
    <service android:name=".GcmIntentService" />
</application>

Надеюсь это поможет:)

Другие вопросы по тегам