Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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中使用NFC(Android Beam)接收文件_Android_Nfc_Intentfilter_Nfc P2p_Android Beam - Fatal编程技术网

如何在Android中使用NFC(Android Beam)接收文件

如何在Android中使用NFC(Android Beam)接收文件,android,nfc,intentfilter,nfc-p2p,android-beam,Android,Nfc,Intentfilter,Nfc P2p,Android Beam,我能够使用NFC发送文件,基于。但是我无法处理接收器部分 我跟踪接收端,得到了一个通知,即接收端的Beam文件传输成功。当用户单击此通知时,我希望我的应用程序应该启动 我的接收活动具有以下意图筛选器: <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> &

我能够使用NFC发送文件,基于。但是我无法处理接收器部分

我跟踪接收端,得到了一个通知,即接收端的Beam文件传输成功。当用户单击此通知时,我希望我的应用程序应该启动

我的接收活动具有以下意图筛选器:

<intent-filter>
 <action android:name="android.intent.action.VIEW"/>
 <category android:name="android.intent.category.DEFAULT"/>
 <data android:mimeType="image/*" />
 <data android:mimeType="video/*" />
 <data android:scheme="file" />
</intent-filter>

但即使文件传输完成,我的接收活动也从未被调用。如何在我的应用程序中接收文件?

来自:

注意:对于Android Beam文件传输,如果第一个传入文件的MIME类型为“audio/*”、“image/*”或“video/*”,表示该文件与媒体相关,则在
ACTION\u视图中会收到一个内容URI

由于
过滤器的处理方式(请参见和),您的意图过滤器转换为

  • 意图操作视图MIME类型“image/*”URI与方案“file:”、
  • 意向动作视图和MIME类型“video/*”和带有模式“file:”的URI
因此,它必须匹配数据元素中给定的任何MIME类型任何URI

因此,您的意图过滤器永远无法匹配,因为“image/*”MIME类型和“video/*”MIME类型将生成内容URI,而不是“file:”URI。因此,跳过URI过滤器部分或将过滤后的方案更改为“内容”都可以做到这一点

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="image/*" />
    <data android:mimeType="video/*" />
</intent-filter>



为什么您认为您的活动必须开始?NFC没有任何意图。当用户单击光束传输成功的通知时,我的应用程序应该启动。这就是我要做的。
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="image/*" />
    <data android:mimeType="video/*" />
    <data android:scheme="content" />
</intent-filter>