2017-09-27 4 views
2

私はUnity3D開発の世界から来て、私はAndroid開発にはかなり新しいです。 Unity Android用のNFCプラグインを作成しようとしています。 Twinspriteが提供するthis guideの後に、UnityPlayerActivityを拡張してプラグインを作成する方法を追ってきました。 Twinsrpiteのコードを使用すると、プラグインはAndroidのNFCフォアグラウンドディスパッチシステムを有効にして、アプリケーションがフォアグラウンドにある間にNFCインテントをキャプチャできます。フラグメントがアクティビティを経由せずにインテントデータを受け取る方法はありますか?

私の研究では、拡張プロジェクトUnityPlayerActivityは、Unityプロジェクトの他のプラグインの依存関係に多くの問題を引き起こす可能性があるため、悩まされています。そこから、多くの他のUnity Androidプラグインと同様に、プラグインをFragmentクラスに拡張することに決めました。このようにして、私のヘッドレスFragmentプラグインは、フラグメントライフサイクルのコールバックを利用してUnityの問題を引き起こさずに行をダウンさせることができます。

でも、Fragmentで動作するようにコードを修正しているうちに問題が発生しました。 TwinspriteのコードはActivityonNewIntentコールバックに依存し、IntentのデータをNFCメッセージを解析するハンドラメソッドに渡します。 Activityの代わりにFragmentを使用するコードを書いているので、私はもはやonNewIntentコールバックにアクセスできなくなり、ハンドラメソッドをもう呼び出すことができなくなりました。上述したように、私はので、私はこの質問が残ってるUnityPlayerActivityの延長から離れて滞在したいと思います:

どのように私はUnityPlayerActivityを延長せずに私のFragmentプラグインの中から私のNFC Intentからデータを受け取ることができますか?

+1

フラグメントはアクティビティ内でホストされている必要があります。それらはスタンドアロンのコンポーネントではありません – Kuffs

+0

@Kuffs私は現時点で私のコードを持っていませんが、Fragmentを 'FragmentManager'クラスを使って' UnityPlayerActivity'の状態に追加しています。私はプラグインオブジェクトを作成するためにUnity内で静的メソッドを呼び出すことでこれをやっています。 – Esper

答えて

0

私はちょうどFragmentクラスを使用せずにUnityPlayerActivityを拡張するルートを行くことにしました。 Fragment拡張プラグインの要点は、AndroidManifest.xmlの変更を避けることでした。なぜなら、他のプラグイン(analytics、Facebookなど)に問題が発生するからです。IntentActivityで処理する必要がありますすることはできません。

0

あなたのFragmentに新しいインテントを渡すことができるメソッドを追加するだけです。その後、フラグメントは意図したとおりに意図を処理できます。

MyUnityFragment myUnityFragment; 

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent);  
    myUnityFragment.newIntent(intent); 
} 
+0

私は、アクティビティ側にコードを書くことを回避する方法を見つけようとしていました。ユーザーがインテントを受け取ったときに購読できる公開イベントがあるのか​​どうか疑問に思っていますが、そのようなやり方があるように見えるので、このオリジナルの考えに後戻りする必要があります。ありがとう。 – Esper

+0

申し訳ありませんリンクされた例がアクティビティを拡張したため、アクティビティを拡張できないことはわかりませんでした。私はNFC機能がアクティビティにリンクされているのではないかと心配しています。https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#dispatching – jgriffin

+0

ユニティドキュメントは大きくないようです提供されたアクティビティを拡張することについては、マニフェストを更新する必要があるようです。 https://docs.unity3d.com/Manual/AndroidUnityPlayerActivity.html – jgriffin

関連する問題