2015-04-03 118 views
0

我正在整合Pushwoosh API,用於我需要的推送通知deviceToken。如何獲得它:獲取Android設備令牌

我使用越來越空字符串這樣的:

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

+0

你可以確認嗎,你已經在你的清單中給出了互聯網許可,或者你的互聯網可以被你的設備訪問或不可以 – 2015-04-03 13:53:25

+0

@AndroidWeblineindia:是的,我有。 – Nitish 2015-04-03 13:55:32

+0

如果可能的話,你可以提供代碼,以便更好地瞭解你的問題 – 2015-04-03 14:01:30

回答

0

您的代碼看起來很不錯,只是下面的代碼比較你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> 

希望這有助於:)

+0

我在應用程序的任何地方都沒有GcmIntentService。我正在使用默認的GcmBroadcastReceiver。那件事呢? – Nitish 2015-04-03 13:55:15

0

請嘗試下面的代碼,希望對您有所幫助

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

    final String regId = GCMRegistrar.getRegistrationId(this); 
+0

否定。不工作。 – Nitish 2015-04-03 14:11:09