9

Facebookアプリで「Androidネイティブアプリ」を設定する場合は、Androidクラス名が必要です。Unity3DからAndroidAPKを作成した場合、使用するクラスをどのようにして知ることができますか?

ここに画像の説明を入力してください

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="--------------" android:versionName="1.02" android:versionCode="8">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
  <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true">
    <activity android:name="com.unity3d.player.UnityPlayerProxyActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="landscape">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="landscape">
    </activity>
    <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="landscape">
      <meta-data android:name="android.app.lib_name" android:value="unity" />
      <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
    </activity>
    <activity android:name="com.unity3d.player.VideoPlayer" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="landscape">
    </activity>
    <!-- ACTIVITIES -->
    <activity android:name="com.prime31.FacebookProxyActivity" />
    <!-- META-DATA -->
  </application>
  <!-- PERMISSIONS -->
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-feature android:glEsVersion="0x00020000" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-feature android:name="android.hardware.sensor.accelerometer" />
  <uses-feature android:name="android.hardware.touchscreen" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
</manifest>
4

3 に答える 3

6

このフィールドは、メインアクティビティ(MAINおよびLAUNCHERに関連付けられている)である必要があります。この場合、com.unity3d.player.UnityPlayerProxyActivityになると思います。

これは主に、ネイティブディープリンクを使用する場合に必要です(したがって、FBアプリはアクティビティを直接呼び出すインテントを作成できます)。その点で、あなたのアプリで公的にアクセス可能なアクティビティはすべて行います。

于 2013-02-21T17:34:31.063 に答える
6

メインアクティビティのタグにはintent-filter、アクションandroid.intent.action.MAINとカテゴリを含むタグが含まれている必要がありますandroid.intent.category.LAUNCHER

タグの説明intent-filter(ドキュメントから):

アクティビティ、サービス、またはブロードキャストレシーバーが応答できるインテントのタイプを指定します。インテントフィルターは、その親コン​​ポーネントの機能(アクティビティまたはサービスが実行できること、およびレシーバーが処理できるブロードキャストのタイプ)を宣言します。コンポーネントを開いて、アドバタイズされたタイプのインテントを受信し、コンポーネントにとって意味のないインテントを除外します。フィルタの内容のほとんどは、、、、およびサブ要素によって記述さ<action><category>ます<data>

フィルタの詳細については、個別のインテントとインテントフィルタのドキュメント、および概要のインテントフィルタのセクションを参照してください。

Androidアプリケーションの主なアクティビティには、アクティビティが「アプリを起動」できること(つまり、ランチャー/エントリ)を基本的にintent-filter示すカテゴリがあります。LAUNCHER

タグは次のactivityようになります。

<activity android:name="ActivityClassName" android:label="Activity title">
    <!-- The intent filter -->
    <intent-filter>
        <!-- The action -->
        <action android:name="android.intent.action.MAIN"/>
        <!-- The category -->
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

を見るとAndroidManifest.xml、アプリの主なアクティビティはアクティビティであると結論付けることができます。これは、これらの基準に一致するものcom.unity3d.player.UnityPlayerProxyActivityが含まれているためです。intent-filter

あなたのゲームで頑張ってください!

于 2015-05-23T22:04:33.797 に答える
0

「UnityPlayerProxyActivity」の使用は、すべてのUnityバージョンに当てはまりません。代わりに「UnityPlayerActivity」を使用する必要がある場合があります。

詳細:

ユニティからAndroidプロジェクトをエクスポートする場合、srcに3つのクラスがあります。

  • UnityPlayerActivity
  • UnityPlayerNativeActivity
  • UnityPlayerProxyActivity

「UnityPlayerProxyActivity」と「UnityPlayerNativeActivity」はUnity5.0beta12以降非推奨になっているため、代わりに「UnityPlayerActivity」を使用する必要があります。

Facebookで次のように入力します。

[tld.yourdomain.game] .UnityPlayerActivity

もちろん、[...]の部分をアプリの詳細に置き換えてください。注意:マニフェストをいじくり回すプラグイン/拡張機能がある場合、これは異なる場合があります。

更新:Facebook SDK for Unityの新しいバージョン(7.9.4でテスト済み)では、Assetsフォルダーで「FacebookSettings」を検索するだけで、使用するクラス名(「com.facebook.unity.FBUnityDeepLinkingActivity」)がわかります。例えば)。

于 2017-05-15T08:21:52.890 に答える