2013-02-21 27 views
8

Khi định cấu hình "Ứng dụng gốc của Android" trong ứng dụng Facebook, chúng yêu cầu tên lớp học Android . Nếu bạn đã tạo APK Android từ Unity3D, bạn biết lớp nào sẽ sử dụng?Tìm "tên lớp Android" trong "AndroidManifest.xml" được tạo bởi Unity3D

enter image description here

<?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> 

Trả lời

4

lĩnh vực này cần được hoạt động chính của bạn (liên quan đến chính và Launcher). Trong trường hợp này, tôi nghĩ nó sẽ là com.unity3d.player.UnityPlayerProxyActivity.

Điều này chủ yếu là cần thiết nếu bạn sử dụng liên kết sâu gốc (do đó ứng dụng FB có thể tạo ra mục đích trực tiếp gọi hoạt động của bạn). Về mặt đó, mọi hoạt động có thể truy cập công khai trong ứng dụng của bạn sẽ thực hiện.

5

Thẻ của hoạt động chính phải chứa thẻ intent-filter với hành động android.intent.action.MAIN và danh mục android.intent.category.LAUNCHER.

Mô tả intent-filter tag (từ tài liệu):

Chỉ định loại intents rằng một hoạt động, dịch vụ hoặc phát sóng receiver có thể đáp ứng. Một bộ lọc ý định khai báo các khả năng của thành phần chính của nó - một hoạt động hoặc dịch vụ có thể làm gì và các loại chương trình phát sóng nào mà người nhận có thể xử lý. Nó mở thành phần này thành nhận được ý định của loại được quảng cáo, trong khi lọc ra những thành phần không có ý nghĩa đối với thành phần đó. Hầu hết nội dung của bộ lọc được mô tả theo các phụ kiện <action>, <category><data> của chúng tôi.

Để có cuộc thảo luận chi tiết hơn về bộ lọc, hãy xem tài liệu Intents và Intent Filters riêng biệt, cũng như phần Bộ lọc mục đích trong phần giới thiệu.

Các hoạt động chính của một ứng dụng Android có intent-filter với loại LAUNCHER mà về cơ bản nói rằng hoạt động này có thể "khởi động ứng dụng" (nói cách khác, nó là launcher/entry).

Thẻ activity nên tìm một cái gì đó như thế này:

<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> 

Bằng cách nhìn vào AndroidManifest.xml của bạn, bạn có thể kết luận rằng Hoạt động chính của ứng dụng của bạn là Hoạt động com.unity3d.player.UnityPlayerProxyActivity, bởi vì nó có chứa một intent-filter phù hợp với những tiêu chí.

Chúc may mắn với trò chơi của bạn!

0

Sử dụng "UnityPlayerProxyActivity" không còn đúng cho tất cả các phiên bản thống nhất. Thay vào đó, bạn có thể phải sử dụng "UnityPlayerActivity".

chi tiết:

Nếu bạn xuất một dự án Android từ sự hiệp nhất bạn có thể thấy ba lớp trong src:

  • UnityPlayerActivity
  • UnityPlayerNativeActivity
  • UnityPlayerProxyActivity

"UnityPlayerProxyActivity" và "UnityPlayerNativeActivity" đã được không được chấp nhận kể từ Unity 5.0 beta12, do đó bạn phải sử dụng "UnityPlayerActivity" để thay thế.

Trong loại Facebook trong:

[tld.yourdomain.game] .UnityPlayerActivity

Thay thế [...] phần với chi tiết cụ thể ứng dụng của bạn trong khóa học. Lưu ý: Nếu bạn có một số plugin/tiện ích mở rộng phù hợp với tệp kê khai của mình thì điều này có thể khác.

CẬP NHẬT: Trong phiên bản mới hơn của SDK Facebook cho Unity (thử nghiệm với 7.9.4), bạn có thể tìm kiếm "FacebookSettings" trong thư mục Tài sản của bạn và nó sẽ cho bạn biết Tên Lớp cần sử dụng ("com.facebook .unity.FBUnityDeepLinkingActivity "chẳng hạn).