android - GCM 无法启动服务 Intent

标签 android xamarin.android google-cloud-messaging

从 android P 开始,我的应用无法注册 GCM ID。我的 PushManager 代码看起来像

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());
        }

我的 list :

<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" />

每当我尝试注册或取消注册时,我都会收到此错误:

07-05 16:35:49.156 W/ActivityManager( 1167): Unable to start service Intent { act=com.google.android.c2dm.intent.UNREGISTER pkg=com.google.android.gsf (has extras) } U=0: not found
07-05 16:35:49.169 W/ActivityManager( 1167): Unable to start service Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gsf (has extras) } U=0: not found

我发现运行较旧操作系统的设备可以正常注册。到目前为止,我遇到的唯一问题是 android P 预览版。任何帮助,将不胜感激。

最佳答案

您可能使用的是旧版本的 GCM。

您可以升级到 GCM 11 或更高版本,甚至更好,迁移到 FCM。 (GCM 现已弃用)

(最新的 GCM 版本是 15.0.1:com.google.android.gms:play-services-gcm:15.0.1)

关于android - GCM 无法启动服务 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51200431/

相关文章:

android - 如何从 Activity 和 BroadcastReceiver 重现应用程序无响应 (ANR)

android - AChartEngine的Dial Chart如何设置刻度线的颜色

android - 在 Android 中选择 EGL 配置的正确方法是什么?

java - 如何在 android 中通过缩略图使图像淋浴变大?

android - Android平台Xamarin Editor Control中如何去除文本下划线?

c# - GameCircle - MonoDroid - Xamarin

c# - Android Xamarin 在 Android.Widget 中没有 WebView

android - 我的服务器如何使用 Google 帐户对 Android 用户进行身份验证?

java - 通知 Android 用户

android - 我如何使用旧版本的谷歌播放服务?