Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android on touch模式下使用NFC发送文件_Android_File_Nfc_Send - Fatal编程技术网

如何在android on touch模式下使用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) {

我正在做一个项目,在这个项目中我创建了一个本地的.csv文件,我想用NFC发送这个文件

到目前为止,这是我活动中的代码

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()