C# 如何检测是否从Unity安装了Google Play服务?

C# 如何检测是否从Unity安装了Google Play服务?,c#,android,unity3d,google-play-services,C#,Android,Unity3d,Google Play Services,有些设备没有安装GooglePlay服务,所以我不能使用像GooglePlay游戏服务这样的API。从Unity,我如何检测到未安装Play服务,因此我必须跳过调用GPG 我知道我需要调用,但我需要从C#调用。您需要使用Unity中的JNI支持从C#调用Java API。在这种情况下,对isGooglePlayServicesAvailable的调用如下所示: public bool IsPlayServicesAvailable() { const s

有些设备没有安装GooglePlay服务,所以我不能使用像GooglePlay游戏服务这样的API。从Unity,我如何检测到未安装Play服务,因此我必须跳过调用GPG


我知道我需要调用,但我需要从C#调用。

您需要使用Unity中的JNI支持从C#调用Java API。在这种情况下,对isGooglePlayServicesAvailable的调用如下所示:

 public bool IsPlayServicesAvailable()
        {
            const string GoogleApiAvailability_Classname = 
                "com.google.android.gms.common.GoogleApiAvailability";
            AndroidJavaClass clazz = 
                new AndroidJavaClass(GoogleApiAvailability_Classname);
            AndroidJavaObject obj = 
                clazz.CallStatic<AndroidJavaObject>("getInstance");

            var androidJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            var activity = androidJC.GetStatic<AndroidJavaObject>("currentActivity");

            int value = obj.Call<int>("isGooglePlayServicesAvailable", activity);

            // result codes from https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult

            // 0 == success
            // 1 == service_missing
            // 2 == update service required
            // 3 == service disabled
            // 18 == service updating
            // 9 == service invalid
            return value == 0;
        }
public bool isplayservicesavaailable()
{
常量字符串GoogleAppAvailability\u类名=
“com.google.android.gms.common.GoogleAppAvailability”;
AndroidJavaClass clazz=
新的AndroidJavaClass(GoogleAppAvailability_类名);
AndroidJavaObject obj=
clazz.CallStatic(“getInstance”);
var androidJC=新的AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
var activity=androidJC.GetStatic(“currentActivity”);
int value=obj.Call(“isGooglePlayServicesAvailable”,活动);
//来自的结果代码https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult
//0==成功
//1==缺少服务\u
//2==需要更新服务
//3==服务已禁用
//18==服务更新
//9==服务无效
返回值==0;
}

您需要使用Unity中的JNI支持从C#调用Java API。在这种情况下,对isGooglePlayServicesAvailable的调用如下所示:

 public bool IsPlayServicesAvailable()
        {
            const string GoogleApiAvailability_Classname = 
                "com.google.android.gms.common.GoogleApiAvailability";
            AndroidJavaClass clazz = 
                new AndroidJavaClass(GoogleApiAvailability_Classname);
            AndroidJavaObject obj = 
                clazz.CallStatic<AndroidJavaObject>("getInstance");

            var androidJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            var activity = androidJC.GetStatic<AndroidJavaObject>("currentActivity");

            int value = obj.Call<int>("isGooglePlayServicesAvailable", activity);

            // result codes from https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult

            // 0 == success
            // 1 == service_missing
            // 2 == update service required
            // 3 == service disabled
            // 18 == service updating
            // 9 == service invalid
            return value == 0;
        }
public bool isplayservicesavaailable()
{
常量字符串GoogleAppAvailability\u类名=
“com.google.android.gms.common.GoogleAppAvailability”;
AndroidJavaClass clazz=
新的AndroidJavaClass(GoogleAppAvailability_类名);
AndroidJavaObject obj=
clazz.CallStatic(“getInstance”);
var androidJC=新的AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
var activity=androidJC.GetStatic(“currentActivity”);
int value=obj.Call(“isGooglePlayServicesAvailable”,活动);
//来自的结果代码https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult
//0==成功
//1==缺少服务\u
//2==需要更新服务
//3==服务已禁用
//18==服务更新
//9==服务无效
返回值==0;
}