第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

手機(jī)適配-魅族手機(jī)通過Intent打開文件Bug解決方案

標(biāo)簽:
Android

下面是打开文件的Intent的代码片段:

public static Intent makeOpenFileIntent(Context context, String mime, File path) {
    Intent intent = new Intent(Intent.ACTION_VIEW);

    LogUtils.v(TAG, "Open file with mime: " + mime);    if (StringUtils.isNullOrEmpty(mime)) {
        intent.setDataAndType(Uri.fromFile(path), "*/*");
    } else {
        intent.setDataAndType(Uri.fromFile(path), mime);
    }    return intent;
}

通过Intent请求系统筛选出能打开目标文件的Activity,基本都是通过上面这段代码来实现的,没毛病。
使用魅族手机debug后发现,出问题的都是那些 mime 为null的文件。mime这个参数,即文件的 MimeType。通过下面的代码来获取:

MimeTypeMap.getSingleton().getMimeTypeFromExtension(String extension);

由此基本可以得出结论,魅族手机发现你传递过来的文件的 MimeType为 /时,并不会弹出所有支持 Intent.ACTION_VIEW的Activity供你选择,而是直接跳转到某个系统自带的应用了。

Context#start...(Intent) 系列方法的工作原理:如果使用的是显式Intent,就直接去启动具体的组件;如果使用的是隐式Intent,那么系统先经过筛选找到所有符合Intent描述信息的组件,然后显示符合条件的组件列表供你选择。其实,隐式Intent最终还是被转换成了显示Intent。

实现Activity选择器

经过上面分析,我们就可以开始实现自定义Activity选择器了,这个项目的名称就叫做AppChooser。
先来看一下效果:

引入项目

compile 'io.julian:appchooser:1.0.4'

使用方法,在Activity或Fragment中:

@NonNullprivate AppChooser mAppChooser;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_file_infos);      // 初始化 AppChooser
    mAppChooser = AppChooser.with(this); 
}@Overridepublic void onStart() {    super.onStart();      // 绑定 AppChooser
    mAppChooser.bind();
}@Overridepublic void onStop() {    super.onStop();       // 解绑 AppChooser
    mAppChooser.unbind();
}/**
* 打开文件
*/private void showFile(FileInfo file) {      // 传入File对象
      mAppChooser.file(new File(file.getAbsolutePath())).load();
}

原文链接:http://www.apkbus.com/blog-924779-76715.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消