如何在android on touch模式下使用NFC发送文件
我正在做一个项目,在这个项目中我创建了一个本地的.csv文件,我想用NFC发送这个文件 到目前为止,这是我活动中的代码如何在android on touch模式下使用NFC发送文件,android,file,nfc,send,Android,File,Nfc,Send,我正在做一个项目,在这个项目中我创建了一个本地的.csv文件,我想用NFC发送这个文件 到目前为止,这是我活动中的代码 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); if (nfcAdapter == null) {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter == null) {
return; // NFC not available on this device
}
Uri uri1;
File root ;
root= Environment.getExternalStorageDirectory();
//assign the file path to the uri
uri1=Uri.fromFile(new File(root, "myFile.csv"));
nfcAdapter.setBeamPushUris(new Uri[] {uri1}, this);
}
不幸的是,我现在没有其他设备来检查它,但我会在不久的将来这样做。我的问题是,当两台设备连接在一起时,如何将文件发送到另一台设备?通常安卓系统都有这些功能的监听器。NFC有类似的情况吗
我正在另一台Nexus 4上测试4.2.2中的应用程序:
“对于Android Beam,您需要使用setBeamPushUris()
(或setBeamPushUrisCallback()
,如果数据不固定,则需要为包含数据的文件提供URI。对于S-Beam,我不知道有任何可以使用的API。AFAICT,S-Beam仅与内置的图片、视频和音乐应用程序一起工作。”
你可以试试。如果你的目的是通过Android Beam,特别是NFC“单独”传输内容(无论大小),那么我认为建议的方法都不会满足你的需要。这些方法通过蓝牙或WiFi direct等替代机制实现更快的传输,从而提供更好的用户体验。根据Android开发文档,如果设备不支持蓝牙或WiFI等替代传输,则调用这些方法不会产生任何效果。因此,考虑到您提出的具体问题,如果需要使用NFC,您最好选择其他路径,例如setNdefPushMessage()或setNdefPushMessageCallback()