0
  • 最佳答案
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.setDataAndType(uri,"image/*");
    startActivity(intent);
    


    大概是这样一个代码


    1153952789488054272  评论     打赏       拉大锯
    • 臭皮匠  回复 @拉大锯
      在android7以后的 uri不需要用 provider去修饰么
      臭皮匠 2021-11-16 09:14   回复 1382711465131241472
    • 拉大锯  回复 @臭皮匠
      不知道,我记不住呀,关于内容提供者看源码就好。
      拉大锯 2021-11-16 09:56   回复 1153952789488054272
  • 最终根据康师傅的进行修改和判断 大致分为这种情况

    String type = CommonUtils.getMIMEType(file);  // image/jpeg
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
        Uri uri = FileProvider.getUriForFile(this,BuildConfig.APPLICATION_ID+".fileprovider",file);
        intent.setDataAndType(uri,type);
    }else {
        intent.setDataAndType(/* uri */Uri.fromFile(file), type);
    }
    // 跳转
    if (intent.resolveActivity(this.getPackageManager()) != null) {
        startActivity(intent);
    } else {
        CommonUtils.showToast(this,
                this.getString(R.string.cannot_open_this_type_file) + filename);
    }
    
    1382711465131241472  评论     打赏       臭皮匠
    • 宝们 我想要的是用uri打开手机内对应的相册内容 似乎不是image/*打开所有相册

      1382711465131241472  评论     打赏       臭皮匠
      • 为什么要用 内容提供者呢

        直接

        Intent intent = new Intent(Intent.ACTION_PICK, null);
        intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
        startActivityForResult(intent, 2);
        

        然后onActivityResult


        1231137268748521472  评论     打赏       码划云
        • 臭皮匠  回复 @码划云
          这是打开相册选择的图片 俺认识 俺前几天还在用
          臭皮匠 2021-11-16 09:18   回复 1382711465131241472
      • 这用什么手机测的,手机还是模拟器?手机是android 几

        1302969105866940416  评论     打赏       RUOQ
        • 臭皮匠  回复 @RUOQ
          android10呢 荣耀X8
          臭皮匠 2021-11-16 09:10   回复 1382711465131241472
      • intent.setAction(Intent.ACTION_VIEW);//Intent.ACTION_PICK  //ACTION_VIEW
        

        暂时发现是这条Action的问题 明天再卷了 球球大佬们看看

        1382711465131241472  评论     打赏       臭皮匠
        • 你打开的是一个activity,我没看懂,你这是啥流程。

          1153952789488054272  评论     打赏       拉大锯
          • 臭皮匠  回复 @拉大锯
            这个开启原生的相册 应该是这么理解 不需要回传信息 类似于打开相册一样?
            臭皮匠 2021-11-15 18:11   回复 1382711465131241472
        • 这个内容提供者是你自己的?

          1153952789488054272  评论     打赏       拉大锯
          • 臭皮匠  回复 @拉大锯
            是我自己
            臭皮匠 2021-11-15 18:11   回复 1382711465131241472
          • 拉大锯  回复 @臭皮匠
            我这么回吧,我不管你这个了。看这个名称看起来像官方的,一般开发不会这么命名。如果是你想预览图片,Build.VERSION.SDK_INT >= Build.VERSION_CODES.N,这个条件成立吗?我在另外回答你吧。
            拉大锯 2021-11-15 19:33   回复 1153952789488054272
          • 臭皮匠  回复 @拉大锯
            成立的 康师傅
            臭皮匠 2021-11-16 09:09   回复 1382711465131241472
        相关问题
        _empty · Android
        2019-10-20 23:51 604 2
        application · Android
        2019-11-05 00:26 753 2
        三流废物 · android / 小白
        2019-11-22 00:35 1035 5
        豪豪好吗 · Android / GPS
        2019-11-26 20:15 842 5
        Jian · android
        2019-11-28 01:51 588 2
        2019-12-01 01:01 648 2
        小陈学编程 · Android
        2019-12-01 19:08 605 2
        fkinggod · Android
        2019-12-08 09:19 629 5
        fkinggod · Android
        2019-12-08 20:47 575 2
        kissmyass · Android
        2019-12-09 07:08 512 2
        独一无二的名zi · Android
        2019-12-30 06:48 388 2