统一的Android插件不开放权限对话?

问题描述:

我刚刚开发的android插件为统一,我成功地能够交换统一和android插件之间的数据。统一的Android插件不开放权限对话?

在我的Android插件我的代码

String SCOPE = "https://www.googleapis.com/auth/youtube"; 
am.getAuthToken(myAccount_[0], "oauth2:" + SCOPE, null, this, 
     new OnTokenAcquired(), null); 

应该提示我,让我的应用程序访问YouTube。

它为我的android应用程序工作正常,但不能要求统一。

这里是我的Android代码:

public void YoutubeSubscriber() { 
     AccountManager am = AccountManager.get(context); 
     Account[] myAccount_ = AccountManager.get(context).getAccountsByType("com.google"); 
     Log.d("==============>all", String.valueOf(myAccount_)); 
     Log.d("==============>single", String.valueOf(myAccount_[0])); 

     String SCOPE = "https://www.googleapis.com/auth/youtube"; 
     am.getAuthToken(myAccount_[0], "oauth2:" + SCOPE, null, null, 
       new OnTokenAcquired(), null); 
     Toast.makeText(this.context, myAccount_[0].toString(), Toast.LENGTH_SHORT).show(); 
    } 

,并在统一使用该就是这样。

  using (AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) 
      { 
       info.text = "activity"; 
       activityContext = activityClass.GetStatic<AndroidJavaObject>("currentActivity"); 
      } 

      using (AndroidJavaClass pluginClass = new AndroidJavaClass("com.thegamecontriver.androidlib.ToastExample")) 
      { 
       if (pluginClass != null) 
       { 

        toastExample = pluginClass.CallStatic<AndroidJavaObject>("instance"); 
        toastExample.Call("setContext", activityContext); 

        info.text = "After "; 
        toastExample.Call("YoutubeSubscriber"); 



        /* 
        activityContext.Call("runOnUiThread", new AndroidJavaRunnable(() => { 
         toastExample.Call("YoutubeSubscriber"); 
        })); 
        */ 
       } 
      } 

注:我能够看到吐司,但许可不提示。请帮助

您可能会错过使用AccountManager所需的许可(USE_CREDENTIALS)。

getAuthToken SDK reference

注意:如果您的目标应用在API级别22之前,需要对这些平台 USE_CREDENTIALS许可工作。请参阅文档为 API等级22

1.Go到<UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Apk这个功能,AndroidManifest.xml文件复制到你的<ProjectName>Assets\Plugins\Android

2.Now从<ProjectName>Assets\Plugins\Android打开复制清单文件,并添加<uses-permission android:name="android.permission.USE_CREDENTIALS"/>它。保存,生成并运行。如果这是一个许可问题,现在应该解决。

AndroidManifest.xml应该是什么样子(统一5.4):

<?xml version="1.0" encoding="utf-8"?> 
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.unity3d.player" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <uses-permission android:name="android.permission.USE_CREDENTIALS"/> 

    <application 
    android:theme="@style/UnityThemeSelector" 
    android:icon="@drawable/app_icon" 
     android:label="@string/app_name" 
     android:debuggable="true"> 
     <activity android:name="com.unity3d.player.UnityPlayerActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> 
     </activity> 
    </application> 
</manifest> 
+0

我已经添加权限。仍然没有运气 – umair

+0

在Java方面,将代码放在'try catch'子句中的'YoutubeSubscriber'函数中,并查看是否有任何新的异常被捕获。用'Log.d'输出异常信息。 – Programmer