2012-03-17 18 views
2

まず最初に何をしているか教えてください。私は、シーケンスで3つのアクティビティを持っています。特定のアクティビティからのみNFCタグを読み取る

アクティビティ1 >>アクティビティ2 >>アクティビティ3。今度は、タグをタップすると、Activity2からNFCタグだけを読みたいと思っています。 Activity1またはActivity3に入っているとき、私のアプリはタグを読むことができないはずです。どのように私はこれになっていますか、有効/無効のオプションはありますか?同じものを設定するプロパティはどれですか?私はこの目的のために設定からNFCを有効/無効にするようにユーザに促したいとは思わない。

答えて

9

フォアグラウンドアプリケーションとして、アプリは常にタッチされたタグで最初に反応する機会があります。ですから、あなたの活動のためにforgraoundDsipatchを有効にし、Activity1とActivity3だけでイベントを無視し、Activity2でタッチされたタグの情報を処理する必要があります。それ以外の場合は、アプリケーションが検出されたタグのイベントを取らない場合、アンドロイドディスパッチシステムは引き金を引く適切なアプリケーションを検索し続け、見つかったらそれをあなたのアプリの上で起動します。フォアグラウンド派遣の詳細については

はここを見て:http://developer.android.com/guide/topics/nfc/advanced-nfc.html#foreground-dispatch

+0

activity1とactivity3に対してenableForegroundDispatch()のnullパラメータを設定する必要がありますか?もしそうなら、私はonCreate()でそれをしましたが、nullポインタ例外のために強制終了があります。 Iveは、activity2に対してenableForegroundDispatch()を使用しました。 –

+2

フィルタとtechListsにはnullを使用できますが、pendingIntentではどのクラスがタグ解析を行うかを指定する必要があります。 PendingIntent pendingIntent = PendingIntent.getActivity( これ、0、新しいインテント(this、getClass())。addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)、0); –

+0

お返事ありがとうございました。それは私のために働いた。 –

0

アクティビティ2に関心のあるNFCのインテントのインテントフィルタのみを設定します。例については、Android NFC Demo AndroidManifest.xmlを参照してください。

+0

をはい、それは私の質問は、それがActivity1にするかどうかをどのように私はタグを読み取るから、私のアプリを防ぐことができ、あるか..私は私のアプリで行った最初のものでしたアクティビティ3。アクティビティ2でのみタグを読み取る必要があります。 –

関連する問題