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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值