从android P开始,我的应用无法注册GCM ID。我的PushManager代码看起来像
IdGlobal
我的清单:
try
{
GcmClient.CheckDevice(context);
GcmClient.CheckManifest(context);
String[] senderIds = GcmBroadcastReceiver.SENDER_IDS;
foreach (String id in senderIds)
{
System.Diagnostics.Debug.WriteLine("sender id = " + id);
}
GcmClient.Register(context, senderIds);
if (GcmClient.IsRegistered(context))
{
System.Diagnostics.Debug.WriteLine("push registration successfull: " +
GcmClient.GetRegistrationId(context));
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("push registration failed: " + e.Message.ToString());
}
每当我尝试注册或注销时,都会出现此错误:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.app" android:versionName="1.8.5" android:versionCode="97">
<uses-sdk android:minSdkVersion="16" />
<application android:label="My app" android:icon="@mipmap/icon" android:theme="@style/Theme.App" android:hardwareAccelerated="true" android:windowSoftInputMode="stateHidden|adjustResize" android:name="android.support.multidex.MultiDexApplication">
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
</application>
<permission android:name="com.rotogrinders.rg_lineups.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.rotogrinders.rg_lineups.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<permission android:name="android.permission.STATUS_BAR_SERVICE" android:protectionLevel="signature" />
<!-- For Google Play Services -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="com.google.android.c2dm.intent.REGISTER" />
<service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false" />
我发现运行较旧操作系统的设备可以正常运行。到目前为止,我遇到的唯一问题是android P预览。任何帮助,将不胜感激。
答案 0 :(得分:1)
您可能正在使用旧版本的GCM。
您可以升级到GCM 11或更高版本,甚至更好,然后迁移到FCM。 (现已弃用GCM)
(最新的GCM版本是15.0.1:com.google.android.gms:play-services-gcm:15.0.1)