2016-09-30 8 views
0

私は単なるアンドロイドプラグインを開発しており、ユニティとアンドロイドプラグインの間でデータを交換することができました。私のコードをプラグイン私のアンドロイドでユニティのためのAndroidプラグインは、許可のダイアログを開いていませんか?

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

です。これは私が私のアプリは、ユーチューブへのアクセスを許可するよう求めなければなりません。

私の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"); 
        })); 
        */ 
       } 
      } 

注:私はトーストを見ることができますが、許可は促していません。助けてください

答えて

0

AccountManagerを使用するには、必要な許可(USE_CREDENTIALS)が不足している可能性があります。

SDK referencegetAuthTokenから:NOTE

: USE_CREDENTIALS許可がこれらのプラットフォームのために必要とされる、APIレベル22と前上で動作するようにあなたのアプリケーションをターゲットにした場合。 <ProjectName>Assets\Plugins\Androidからコピーされたマニフェストファイルを開いて、それに<uses-permission android:name="android.permission.USE_CREDENTIALS"/>を追加するには、<ProjectName>Assets\Plugins\Android

2.NowにAndroidManifest.xmlファイルをコピーし、 のためのAPIレベル<UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Apkに22

1.Goでこの機能をドキュメントを参照してください。保存し、ビルドして実行します。これが許可の問題であれば、それは今解決されるはずです。

何あなた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

関連する問題