Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin表单android应用程序未获取DeviceToken Parse SDK_C#_Android_Parse Platform_Xamarin.android_Xamarin.forms - Fatal编程技术网

C# Xamarin表单android应用程序未获取DeviceToken Parse SDK

C# Xamarin表单android应用程序未获取DeviceToken Parse SDK,c#,android,parse-platform,xamarin.android,xamarin.forms,C#,Android,Parse Platform,Xamarin.android,Xamarin.forms,我正在为android和iOS开发xamarin表单应用程序。我正在使用Parse SDK实现相同的PushNotifications。我在.Droid项目的引用中添加了Parse.Android dll,在.iOS项目的引用中添加了Parse.iOS dll。我的问题是,有时在Android上,我无法检索DeviceToken。解析安装类中没有DeviceToken和pushtype的条目。它的值是“未定义的”。下面是我的代码和清单 public async void RegisterFor

我正在为android和iOS开发xamarin表单应用程序。我正在使用Parse SDK实现相同的PushNotifications。我在.Droid项目的引用中添加了Parse.Android dll,在.iOS项目的引用中添加了Parse.iOS dll。我的问题是,有时在Android上,我无法检索DeviceToken。解析安装类中没有DeviceToken和pushtype的条目。它的值是“未定义的”。下面是我的代码和清单

public  async void RegisterForPushNotifications ()
    {
        try {
            if (Utility.isNetworkConnected ()) {
                await ParsePush.SubscribeAsync ("");
                var installation = ParseInstallation.CurrentInstallation;
                // I'm saving the DeviceToken in App.regId for future uses
                App.regId = System.String.IsNullOrWhiteSpace (installation.DeviceToken) ? "" : installation.DeviceToken;
                ParsePush.ParsePushNotificationReceived += PushNotificationReceived;
            }
        } catch (ParseException e) {
            System.Diagnostics.Debug.WriteLine (e.StackTrace);
        } catch (Java.Lang.Exception e) {
            e.PrintStackTrace ();
        }
    }
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.nirvaniclabs">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23" />
<application android:label="RxLifetime" android:icon="@drawable/icon" android:largeHeap="true">
    <receiver android:name="parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.nirvaniclabs" />
        </intent-filter>
    </receiver>
    <service android:name="parse.ParsePushService" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.LOCATION_HARDWARE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature" android:name="com.nirvaniclabs.permission.C2D_MESSAGE" />
<uses-permission android:name="com.nirvaniclabs.permission.C2D_MESSAGE" />
</manifest>

另外,
ParseClient.Initialize
是MainActivity的“OnCreate”方法的第一行,我在这里传递初始化所需的解析键

调用
LoadApplication(新应用程序())
后,我将调用RegisterForPushNotifications方法

下面是parse安装类的屏幕截图


请让我知道我的代码中是否有问题,或者是parse SDK的问题

当您使用xamarin声明推送通知时,您必须在xamarin android和IOS这两个部分上编写代码,此外,如果您已经习惯了远程通知,那么请使用push sharp lib,它是推送通知的最佳选择,并注册您的应用程序,并启用与android和IOS相关的通知服务,如GCM和APSN


请尝试以下操作:

我猜您没有在模拟器中运行,对吗?设备只接收物理设备中的令牌。@iván-oliver上面提到的问题是关于物理设备的。你有时指什么?同一台设备?@Amrut我想这个问题现在应该结束了,因为Parse正在关闭。或者你仍然对答案感兴趣吗?我投票结束这个问题,因为Parse SDK现在不推荐使用。