您的位置:首页 > 运维架构

蓝牙OPP协议文件传输格式修改

2016-01-07 17:10 411 查看
android蓝牙在传输文件时对文件格式有限制,默认情况下,并不是所有文件都能够传输和共享。

在packages/apps/Bluetooth下面的AndroidManifest.xml中

<activity android:name=".opp.BluetoothOppLauncherActivity"

android:process="@string/process"

android:theme="@android:style/Theme.Dialog" android:label="@string/bt_share_picker_label">

<intent-filter>

<action android:name="android.intent.action.SEND" />

<category android:name="android.intent.category.DEFAULT" />

<data android:mimeType="image/*" />

<data android:mimeType="video/*" />

<data android:mimeType="audio/*" />

<data android:mimeType="text/x-vcard" />

<data android:mimeType="text/plain" />

<data android:mimeType="text/html" />

<data android:mimeType="application/zip" />

<data android:mimeType="application/vnd.ms-excel" />

<data android:mimeType="application/msword" />

<data android:mimeType="application/vnd.ms-powerpoint" />

<data android:mimeType="application/pdf" />

</intent-filter>

<intent-filter>

<action android:name="android.intent.action.SEND_MULTIPLE" />

<category android:name="android.intent.category.DEFAULT" />

<data android:mimeType="image/*" />

<data android:mimeType="video/*" />

<data android:mimeType="x-mixmedia/*" />

<data android:mimeType="text/x-vcard" />

</intent-filter>

<intent-filter>

<action android:name="android.btopp.intent.action.OPEN" />

<category android:name="android.intent.category.DEFAULT" />

<data android:mimeType="vnd.android.cursor.item/vnd.android.btopp" />

</intent-filter>

</activity>

(1)发送时的限制:

将AndroidManifest里面对文件类型的限制拿掉,增加相对应的mimetype 或 改为<data android:mimeType="*/*" />

(2)接收时的限制:

接收允许格式在文件:packages/apps/Bluetooth/../ BluetoothOppObexServerSession.java 中onput函数中处理。

其定义则是在ACCEPTABLE_SHARE_INBOUND_TYPES这个数组中。文件:

packages/apps/Bluetooth/src/com/android/bluetooth/opp/Constants.java

安卓 支持的mimetype:

libcore/luni/src/main/java/libcore/net/MimeUtils.java

参考:frameworks/base/media/java/android/media/MediaFile.java
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: