

Android初心者です。NFCによるBLE接続とアプリ起動について質問です。

AndroidでNDEFフォーマット化されたNFCタグを読み取った際に、以下の1,2がそれぞれ行えるという認識です。

  1. 特定のアプリケーションを起動することができる（NDEF_DISCOVEREDのフィルタリングまたは、AAR） 
    * [NDEF_DISCOVEREDについて](https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#filtering-intents)
    * [AARについて](https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#aar)
  2. [NFCForum-AD-BTSSP_1_1](https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwis6bP11cTVAhUBVLwKHeMHC1oQFggpMAA&url=http%3A%2F%2Fmembers.nfc-forum.org%2Fapps%2Fgroup_public%2Fdownload.php%2F18688%2FNFCForum-AD-BTSSP_1_1.pdf&usg=AFQjCNGE3bVgqReC7JsZLzg1kg6z3f_PRw)で定義されているNDEFのレコードが含まれていれば、BLEのペアリングが行える

そこで、以下２点質問です。

  * 上記の条件でBLE（クラシックBluetoothではなく）のペアリングを実機で確認できた方いらっしゃいますか？
  * 一度のNFC読み取りで、「アプリ起動→BLE接続」または「BLE接続→アプリ起動」は可能でしょうか？

情報お持ちの方いらっしゃいましたら、ご教授ください。


CC BY-SA 3.0
2017-08-07T08:32:03.077
36995
2023-02-20T12:06:30.840
2017-08-29T02:14:09.413
5710
5710
question
android bluetooth
Android NFC読み取り後にアプリ起動、BLE接続する方法


期待した回答となっているかわかりませんが…、

NDEFレコードにおける、AARが含まれていると自分のアプリがフォアグラウンドでない、または`NfcAdapter#enableForegroundDispatch`で起動優先度をあげていないと、  
基本的にAARで指定されたパッケージのアプリ(またはGoogle Play
Store)が起動されます。これがご自身が作成されたアプリでしたら、基本的に問題ないと思います。

ここで、「NFC読み取り後に〜BLE接続する方法」の主旨を鑑みるに、

■「アプリ起動→BLE接続」  
上記で起動された場合のNDEFメッセージに指定の端末をBLE接続するためのマックアドレスなりの情報が含まれていれば、`BluetoothAdapter`などを使って接続することができます。

■「BLE接続→アプリ起動」  
AndroidはiOSと違ってバックグラウンドの処理に融通が効くので、指定の端末の自動接続を`Service`なりで実装して、接続が確認できたら`startActivity`すれば可能だと思います。

参考になれば幸いです。


CC BY-SA 3.0
2017-08-28T06:18:21.030
37541
2017-08-28T06:18:21.030
22792
36995
answer