android通过蓝牙接收文件打开时无法自动选择合适的应用程序
通过蓝牙接收文件,从历史传输记录打开,无法自动选择合适的应用程序
但是从file manager打开这个新接收的文件,是可以选择对应的应用程序(比如video player打开.3gp、.mp4文件)
历史传输记录打开download的文件,是通过接收文件时对方传过来的mime type来选择适合的APP打开该文件
如果出现提示“未支持格式的文件”,或者使用了错误的APP来打开该文件
原因在于发送方发送文件时填的mime type存在问题
如下的log是mtk接收方的log,请注意黄色字体的tag
Bluetooth.OPP(299): opps newTask: [total=801728][result=null][_id=1][peer_addr=00:23:AF:D5:F6:8B][done=0][name=Eternal Blue.mp3][data=/mnt/sdcard/Received File/Eternal Blue.mp3][state=0][mime=audio/mpeg][type=11][uri=null][peer_name=XT502]
mime type是对文件类型的一个描述,有其相关的标准来关联不同类型文件
mime type有误需要先排查发送方问题
1. 发送方为非mtk手机,需确认发送给不同平台的对比手机,是否都能正常打开该文件
2. 发送方为mtk手机,通过第三方安装APK(如第三方gallery发图片)发送文件,需先排查第三方安装APK的问题,传出来的intent所带的mime type有误
3. 发送方为mtk手机,通过自带APK发文件,请提交eservice由mtk处理
需要明确一点,某些对比的接收方没有此问题,是因为某些厂商做法是接收完文件后,会重新检测该文件并生成新的mimetype
如果只有某些特定文件才有问题,可参考此方法从mtk接收方做mimetype转换作为规避方法
\xintong\packages\apps\Bluetooth\profiles\opp\src\com\mediatek\bluetooth\opp\adp\OppManager.java
代码如下:
oppsStartPushActivity {
...
//add begin
//根据无法识别的mime type来转换
if( mimeType.equals("无法识别的mimetype");
this.mOppsTask.setMimeType("正确的mimetype");
/*
根据后缀名来转换对应的mimetype
String extname = objectName.substring(objname.lastIndexOf("."));
if(extname.equals(".xxx"))
this.mOppsTask.setMimeType("正确的mimetype");
*/
else
//add end
this.mOppsTask.setMimeType(mimeType);
相关推荐
-
Android 文件选择器详解及实例代码
本文给大家讲解下Android文件选择器的使用.实际上就是获取用户在SD卡中选择的文件或文件夹的路径,这很像C#中的OpenFileDialog控件. 此实例的实现过程很简单,这样可以让大家快速的熟悉Android文件选择器,提高开发效率. 网上曾经见到过一个关于文件选择器的实例,很多人都看过,本实例是根据它修改而成的,但更容易理解,效率也更高,另外,本实例有自己的特点: 1.监听了用户按下Back键的事件,使其返回上一层目录. 2.针对不同的文件类型(文件vs文件夹 , 目标
-
Android第三方文件选择器aFileChooser使用方法详解
aFileChooser是android平台上的一个第三方文件选择器,其在github上的项目主页是:https://github.com/iPaulPro/aFileChooser aFileChooser实现了在Android平台上高度可定制化的文件选择功能,aFileChooser在自己的项目代码中使用也比较简单. 写一个简单例子加以说明. (1) 首先要配置Androidmanifest.xml文件: <activity android:name="com.ipaulpro.afi
-
Android文件选择器ExFilePicker的使用方法
在新版的android中(如Android 7.0+),文件选择由于权限限制,Uri变化,文件资源路径格式改版等等,变得比较复杂起来,比如,得在Androidmanifest配置FileProvider完了还得写xml目录下的文件path这些等等.一些第三方的文件选择器,就算没有上面这些动作,一般也得在Androidmanifest写几个Activity.而ExFilePicker则无需上面的繁琐操作,一不需要在Androidmanifest里面定义FileProvider,二不需要写xml文件
-
android选择视频文件上传到后台服务器
本文实例为大家分享了android选择视频文件上传到后台服务器的具体代码,供大家参考,具体内容如下 选择本地视频文件 附上Demo 首先第一步打开打开相册选择视频文件: Intent intent = new Intent(); intent.setType("video/*"); intent.setAction(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); ((Activity)
-
android中写一个内部类来选择文件夹中指定的图片类型实例说明
复制代码 代码如下: /**本类是用来选择文件夹中是.jpg类型的图片*/ private class JpgFileFilter implements FilenameFilter{ @Override public boolean accept(File dir, String filename) { // TODO Auto-generated method stub return filename.endsWith(".jpg"); } }
-
Android应用中实现选择本地文件与目录的实例分享
文件选择器 今天给大家分享下文件选择器的作用 , 具体就是获取用户在在SD卡选中的文件/文件夹路径 ,类似于C#中OpenFileDialog控件(对C#的一站式开发还是念念不忘).功能实现起来比较简单,主要是帮助大家节省开发时间. 网上流传较广的一个成品如下 <[Android实例] 文件选择器>, 本文也是根据上面的成品修改而成,使其更易理解,效率更高. 除此之外,主要特色有: 1.我们监听了用户按下Back键的事件,使其返回上一层目录: 2.针对不同的文件类型(文件vs文件夹 , 目标文
-
Android 文件选择的实现代码
打开文件选择器 复制代码 代码如下: private void showFileChooser() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult( Intent.createChooser(
-
android通过蓝牙接收文件打开时无法自动选择合适的应用程序
通过蓝牙接收文件,从历史传输记录打开,无法自动选择合适的应用程序 但是从file manager打开这个新接收的文件,是可以选择对应的应用程序(比如video player打开.3gp..mp4文件) 历史传输记录打开download的文件,是通过接收文件时对方传过来的mime type来选择适合的APP打开该文件 如果出现提示"未支持格式的文件",或者使用了错误的APP来打开该文件 原因在于发送方发送文件时填的mime type存在问题 如下的log是mtk接收方的log,请注意黄色
-
Android Studio编写AIDL文件后如何实现自动编译生成
在目录src/main 下新建了aidl 文件夹之后,在aidl文件夹中也创建了相同的包路径, 创建AIDL文件 XXX.aidl 如果XXX.aidl引用了一个java下的model例如引用了a.b.c.Model; 则需要在XXX.aidl文件中声明import a.b.c.Model;全路径. 并且创建另一个文件Model.aidl 在Model.aidl文件中声明以下内容 package xxxx包名称; parcelable Model; 如果编译的时候提示AIDL文件引用的包找不到的
-
Android上传文件到Web服务器 PHP接收文件
Android上传文件到服务器,通常采用构造http协议的方法,模拟网页POST方法传输文件,服务器端可以采用JavaServlet或者PHP来接收要传输的文件.使用JavaServlet来接收文件的方法比较常见,在这里给大家介绍一个简单的服务器端使用PHP语言来接收文件的例子. 服务器端代码比较简单,接收传输过来的文件: <?php $target_path = "./upload/";//接收文件目录 $target_path = $target_path . basenam
-
浅谈Android studio 生成apk文件时的 key store path 的问题
使用Android studio生成apk文件时,Key store path 是密钥库文件地址的意思,新手菜鸟会想,我怎么知道他在哪里,其实他的地址是你来决定的. 如下图,你选择一个文件夹后,填写file name,然后点击ok就生成了. 大佬们见怪了~ 补充知识:AndroidStudio每次打开项目不自动打开上一次打开的文件.每次打包都需要重新输入key store path 最近在运行AS时,发现每次打开都要重新的打开目录及打开相关的文件,打包必须重新添加签名文件,我也是醉了. 问题原因
-
ASP.NET导出Excel打开时提示:与文件扩展名指定文件不一致解决方法
"将页面显示的GridView中的数据,导出到Excel表格中"时遇到这样一个错误: C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致.具体提示如图: 解决办法:这里采用"修改注册表的方法"解决此问题,这并没从根上解决问题: 1.打开注册表编辑器方法:开始 -> 运行 -> 输入regedit -> 确定 2.找到注册表子项HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Exc
-
Android编程实现使用webView打开本地html文件的方法
本文实例讲述了Android编程实现使用webView打开本地html文件的方法.分享给大家供大家参考,具体如下: 在布局的配置文件里: <WebView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/webView"> </WebView> 后台java代码; @SuppressLint(
-
易语言打开文件对话框时不允许用户指定一个不存在的文件
文件必须存在属性 所属对象:通用对话框 操作系统支持:Windows,数据类型:逻辑型: 当类型为打开文件对话框时,是否允许用户指定一个不存在的文件. 例程 说明 如果文件必须存在设置为"真",在打开文件时,如果文件不存在,将不能打开. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接
-
Android Bluetooth蓝牙技术使用流程详解
在上篇文章给大家介绍了Android Bluetooth蓝牙技术初体验相关内容,感兴趣的朋友可以点击了解详情. 一:蓝牙设备之间的通信主要包括了四个步骤 设置蓝牙设备 寻找局域网内可能或者匹配的设备 连接设备 设备之间的数据传输 二:具体编程实现 1. 启动蓝牙功能 首先通过调用静态方法getDefaultAdapter()获取蓝牙适配器BluetoothAdapter,如果返回为空,则无法继续执行了.例如: BluetoothAdapter mBluetoothAdapter = Blueto
-
Android实现蓝牙(BlueTooth)设备检测连接
无论是WIFI还是4G网络,建立网络连接后都是访问互联网资源,并不能直接访问局域网资源.比如两个人在一起,A要把手机上的视频传给B,通常情况是打开手机QQ,通过QQ传送文件给对方.不过上传视频很耗流量,如果现场没有可用的WIFI,手机的数据流量又不足,那又该怎么办呢?为了解决这种邻近传输文件的问题,蓝牙技术应运而生.蓝牙技术是一种无线技术标准,可实现设备之间的短距离数据交换. Android为蓝牙技术提供了4个工具类,分别是蓝牙适配器BluetoothAdapter.蓝牙设备BluetoothD
-
Android BLE 蓝牙开发之实现扫码枪基于BLESSED开发
目录 一.蓝牙模式HID与BLE 二.BLE协议白话 三.第三方库 BLESSED for Android的使用 一.蓝牙模式HID与BLE 当扫码枪与手机连接时,通常采用的是蓝牙HID(Human Interface Device)模式.本质上是一个把扫码枪作为一个硬件键盘,按照键盘协议把扫码后的结果逐个输入到对应的控件上. 优点:无需开发集成,配对就可以立即作为键盘输入使用.可以使用输入框等组件直接接收扫码结果. 缺点:对非数字支持不佳,与输入法相关,在某些时候会触发英文联想-_-||,与虚
随机推荐
- 前端获取http状态码400的返回值实例
- python实现八大排序算法(2)
- 循环 vs 递归浅谈
- javascript应用:Iframe自适应其加载的内容高度
- 排序算法之PHP版快速排序、冒泡排序
- thinkPHP简单导入和使用阿里云OSSsdk的方法
- 探讨如何用委托处理排序
- MySQL ALTER命令使用详解
- php实现表单多按钮提交action的处理方法
- PHP 数组学习排序全接触第1/2页
- node.js require() 源码解读
- javascript动态添加、修改、删除对象的属性与方法详解
- SQL语句去掉重复记录,获取重复记录
- jQuery Validate插件自定义验证规则的方法
- jQuery通过改变input的type属性实现密码显示隐藏切换功能
- Bootstrap Table从零开始
- java中DES加密解密
- PHP获取MSN好友列表类的实现代码
- php实现当前页面点击下载文件的实例代码
- tf.truncated_normal与tf.random_normal的详细用法