在Facebook应用中配置“Android Native App”时,他们需要 Android Class Name 。如果你从Unity3D创建了Android APK,你怎么知道要使用哪个类?
<?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>
答案 0 :(得分:5)
此字段应该是您的主要活动(与MAIN和LAUNCHER相关联)。在这种情况下,我认为它将是com.unity3d.player.UnityPlayerProxyActivity。
如果您使用本机深层链接(因此FB应用程序可以创建直接调用您的活动的意图),这通常是必需的。在这方面,您应用中的任何可公开访问的活动都可以。
答案 1 :(得分:5)
主要活动的代码应包含intent-filter
代码,其中包含操作android.intent.action.MAIN
和类别android.intent.category.LAUNCHER
。
intent-filter
标记的说明(来自文档):
指定活动,服务或广播的意图类型 接收器可以响应。意图过滤器声明了它的功能 其父组件 - 活动或服务可以做什么以及做什么 接收器可以处理的广播类型。它打开组件 接收广告类型的意图,同时过滤掉那些意图 对组件没有意义。大部分的内容 过滤器由其
<action>
,<category>
和<data>
描述 子元素。有关过滤器的更详细讨论,请参阅单独的Intents 和Intent Filters文档,以及Intents Filters部分 介绍。
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
。
祝你好运!
答案 2 :(得分:0)
对于所有统一版本,使用“UnityPlayerProxyActivity”不再适用。您可能不得不使用“UnityPlayerActivity”。
详细说明:
如果从Unity导出Android项目,您可以在src中找到三个类:
在Facebook中输入:
<强> [tld.yourdomain.game] .UnityPlayerActivity 强>
当然,用您的应用程序细节替换[...]部分。注意:如果你有一些插件/扩展可以摆弄你的清单,那么这可能会有所不同。
更新: 在较新版本的Facebook SDK for Unity(使用7.9.4测试)中,您只需在Assets文件夹中搜索“FacebookSettings”,它就会告诉您要使用的类名(例如“com.facebook.unity.FBUnityDeepLinkingActivity”) )。