NFC経由でURLを送信して、Android携帯の受信電話のブラウザで開くことができるようにしたい. これは可能なアクションですか?
4 に答える
数時間頭を悩ませ、多数の投稿を閲覧した後。NdefCallbacks を実装し、「createNdefMessage」メソッドで uri を設定するだけでよいことがわかりました。
最初に NdefCallbacks を実装します
public class MyActivity implements CreateNdefMessageCallback, OnNdefPushCompleteCallback {
未実装のメソッドを追加
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
...
}
...
@Override
public void onNdefPushComplete(NfcEvent arg0) {
...
}
アクティビティの上部に NFC アダプターを作成します
NfcAdapter mNfcAdapter;
次に、onCreate メソッドで NFC アダプターをセットアップします。
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
if(mNfcAdapter != null) {
// Register callback to set NDEF message
mNfcAdapter.setNdefPushMessageCallback(this, this);
// Register callback to listen for message-sent success
mNfcAdapter.setOnNdefPushCompleteCallback(this, this);
} else {
Log.i("LinkDetails", "NFC is not available on this device");
}
次に、 createNdefMessage メソッドに次を入れます。
return new NdefMessage(new NdefRecord[] {
NdefRecord.createUri(YOUR_URL_HERE)
});
タップして離すと、残りは Android が処理します。
ガイドを提供してくれたTAPPEDの優秀な人々に感謝します。おかげで、NFC の実装が成功するまでの道のりは約 3/4 になりました。
はいはい。
Web サイトの URL を含む NDEF 形式のレコードをタグに配置すれば完了です。
Android SDK にはたくさんの例があります。
これらのコード、アクティブなアンドロイド NFC ビームを使用します。
そして最も重要なのは、「http://」プレフィックスです。この質問にたどり着いたユーザーのほとんどは、この .
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
NdefMessage msg = new NdefMessage(new NdefRecord[] {
NdefRecord.createUri("http://www.google.com")
});
return msg;
}
コード ブロックは Android リファレンスからのものです。
これはやりたいことですが、デフォルトの Android ブラウザーのインテント フィルターを変更することはできません。
NFC タグからの NDEF データの読み取りは、検出された NFC タグを分析し、データを適切に分類し、分類されたデータに関心のあるアプリケーションを開始するタグ ディスパッチ システムで処理されます。スキャンした NFC タグを処理したいアプリケーションは、インテント フィルターを宣言し、データの処理を要求できます。
これらの機能は、ビーム機能をサポートするアプリがアクティブな場合にサポートされます。
Android Beam™ 機能を使用すると、デバイスを物理的にタップすることで、デバイスが NDEF メッセージを別のデバイスにプッシュできます。この相互作用により、Bluetooth などの他のワイヤレス テクノロジよりも簡単にデータを送信できます。NFC を使用すると、手動でデバイスを検出したり、ペアリングしたりする必要がないからです。2 台のデバイスが範囲内に入ると、接続が自動的に開始されます。Android Beam は一連の NFC API を介して利用できるため、あらゆるアプリケーションがデバイス間で情報を送信できます。たとえば、連絡先、ブラウザ、YouTube アプリケーションは Android Beam を使用して、連絡先、ウェブページ、動画を他のデバイスと共有します。
2つの違いがわかりますか?
お役に立てれば