Ermitteln des von Unity3D generierten "Android-Klassennamens" in "AndroidManifest.xml"

8

Wenn Sie eine "Android Native App" in einer Facebook App konfigurieren, benötigen Sie den Android Class Name . Wenn Sie das Android APK von Unity3D erstellt haben, woher wissen Sie, welche Klasse zu verwenden ist?

%Vor%     
Mattias 21.02.2013, 13:12
quelle

3 Antworten

4

Dieses Feld sollte Ihre Hauptaktivität sein (assoziiert mit MAIN und LAUNCHER). In diesem Fall wäre es com.unity3d.player.UnityPlayerProxyActivity.

Dies ist hauptsächlich notwendig, wenn Sie native Deep-Links verwenden (die FB-App kann also eine Absicht erstellen, die Ihre Aktivität direkt aufruft). In dieser Hinsicht wird jede öffentlich zugängliche Aktivität in Ihrer App funktionieren.

    
Ming Li 21.02.2013, 17:34
quelle
5

Das Tag der Hauptaktivität sollte ein intent-filter -Tag mit der Aktion android.intent.action.MAIN und der Kategorie android.intent.category.LAUNCHER enthalten.

Beschreibung des intent-filter -Tags (aus der Dokumentation):

  

Gibt die Arten von Absichten an, die für eine Aktivität, einen Dienst oder eine Übertragung vorgesehen sind   Empfänger kann darauf reagieren. Ein Intent-Filter deklariert die Fähigkeiten von   seine Elternkomponente - was eine Aktivität oder Dienstleistung kann und was   Arten von Sendungen, die ein Empfänger verarbeiten kann. Es öffnet die Komponente zu   Empfangen von Absichten des beworbenen Typs, während diese herausgefiltert werden   das ist für die Komponente nicht sinnvoll. Die meisten Inhalte der   Filter werden durch seine <action> , <category> und <data> beschrieben   Unterelemente.

     

Eine detailliertere Beschreibung der Filter finden Sie in den separaten Intents   und Intent Filter Dokument, sowie der Intents Filter Abschnitt in   die Einführung.

Die Hauptaktivität einer Android-Anwendung hat eine intent-filter mit der Kategorie LAUNCHER , die im Grunde sagt, dass die Aktivität "die App starten kann" (mit anderen Worten, es ist der Launcher / Eintrag).

Das activity -Tag sollte etwa so aussehen:

%Vor%

Wenn Sie sich Ihre AndroidManifest.xml ansehen, können Sie feststellen, dass die Hauptaktivität Ihrer App die Aktivität com.unity3d.player.UnityPlayerProxyActivity ist, da sie intent-filter enthält, die diesen Kriterien entsprechen.

Viel Glück mit deinem Spiel!

    
Daniel Kvist 23.05.2015 22:04
quelle
0

Die Verwendung von "UnityPlayerProxyActivity" gilt nicht mehr für alle Unity-Versionen. Möglicherweise müssen Sie stattdessen "UnityPlayerActivity" verwenden.

Details:

Wenn Sie ein Android-Projekt von unity exportieren, finden Sie möglicherweise drei Klassen in src:

  • UnityPlayerActivity
  • UnityPlayerNativeActivity
  • UnityPlayerProxyActivity

"UnityPlayerProxyActivity" und "UnityPlayerNativeActivity" sind seit Unity 5.0 beta12 veraltet, daher müssen Sie stattdessen "UnityPlayerActivity" verwenden.

Geben Sie in Facebook Folgendes ein:

[tld.yourdomain.game] .UnityPlayerActivity

Ersetzen Sie den [...] Teil natürlich durch Ihre App-Details. Achtung: Wenn Sie einige Plugins / Erweiterungen haben, die mit Ihrem Manifest herumspielen, kann das anders sein.

UPDATE: In neueren Versionen des Facebook SDK for Unity (getestet mit 7.9.4) können Sie einfach in Ihrem Assets-Ordner nach "FacebookSettings" suchen und es wird Ihnen sagen, welcher Klassenname verwendet werden soll ("com.facebook.unity.FBUnityDeepLinkingActivity" zum Beispiel) ).

    
geoathome 15.05.2017 08:21
quelle