2015-04-03 136 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