如何在触摸模式下使用NFC在Android中发送文件

时间:2013-07-29 00:40:01

标签: android file nfc send

我正在开发一个项目,我在其中创建一个本地.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);
}

不幸的是,我目前没有其他设备可以检查它,但我会在不久的将来这样做。我的问题是当这两个设备组合在一起时,如何将文件发送到其他设备?通常android具有这些功能的监听器。 NFC有什么相似之处吗?

我正在测试Nexus 4上的4.2.2应用程序

2 个答案:

答案 0 :(得分:0)

来自另一个answer

“对于Android Beam,您需要使用setBeamPushUris()向数据提供URI(如果数据未修复,则需要setBeamPushUrisCallback()。)对于S-Beam,我不知道任何可以使用的API .AFAICT,S-Beam仅适用于图片,视频和音乐的内置应用程序。“

您可以尝试this

答案 1 :(得分:0)

如果您的目的是“单独”通过Android Beam(特别是NFC)传输内容(大小不同),那么我认为所建议的方法都不会达到您想要的效果。这些是辅助方法,通过蓝牙或WiFi直接等替代机制实现更快的传输,从而提供更好的用户体验。根据Android开发文档,如果设备不支持蓝牙或WiFI等备用传输,则调用这些方法无效。因此,考虑到您提出的具体问题,如果需要使用NFC,最好采用其他路由,例如setNdefPushMessage()或setNdefPushMessageCallback()。