统一的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>
我已经添加权限。仍然没有运气 – umair
在Java方面,将代码放在'try catch'子句中的'YoutubeSubscriber'函数中,并查看是否有任何新的异常被捕获。用'Log.d'输出异常信息。 – Programmer