美文网首页
联想pad跳转到录音机

联想pad跳转到录音机

作者: 小玉1991 | 来源:发表于2019-11-14 10:28 被阅读0次

工作需要,要使用系统的录音机

方法1
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
startActivityForResult(intent, 33);

该方法,停止录音后,会跳转到录音列表页面。需求是点击停止录音的按钮,直接返回调用页面,并带回Uri

方法2
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                }

                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.setDataAndType(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, "audio/*");
                intent.setPackage("com.lenovo.soundrecorder");

                try {
                    startActivityForResult(intent, 23);
                } catch (Exception e) {
                    CustomToast.showGrayToast(getContext(),"跳转失败");
                }

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        FileLogger.getInstance().info("onActivityResult        ", "requestCode :"
                + requestCode + "          DATA:" + getAudioPath(context,data.getData()));
    }

该方式跳转到录音器,能满足需求
另外附录一下 URI转换成绝对地址 的方法

1、适用于URI为如下样式的情况
uri:content://media/external/audio/media/1564

 public  String getAudioPath(Context context, Uri uri) {
        String res = null;
        String[] proj =
                {MediaStore.Audio.Media.DATA};
        Cursor cursor = context.getContentResolver().query(uri, proj, null, null, null);
        if (cursor.moveToFirst()) {
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
            res = cursor.getString(column_index);
        }
        cursor.close();
        return res;
    }

2、如果URI是类似于uri:content://com.android.providers.media.documents/document/audio%3A1546这样的,上边的方法就不能正确获得绝对地址了。可以用如下方法。


    public String getDocMediaPath(Uri uri){
        final String docId = DocumentsContract.getDocumentId(uri);
        final String[] split = docId.split(":");
        final String type = split[0];
        Uri contentUri = null;
        if ("image".equals(type)) {
            contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        } else if ("video".equals(type)) {
            contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
        } else if ("audio".equals(type)) {
            contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        }
        final String selection = "_id=?";
        final String[] selectionArgs = new String[]{split[1]};

        return getDataColumn(context, contentUri, selection, selectionArgs);
    }

    private  String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {
        Cursor cursor = null;
        final String column = "_data";
        final String[] projection = {column};
        try {
            cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);
            if (cursor != null && cursor.moveToFirst()) {
                final int column_index = cursor.getColumnIndexOrThrow(column);
                return cursor.getString(column_index);
            }
        } finally {
            if (cursor != null)
                cursor.close();
        }
        return null;
    }

参考文档 Android通过URI获取文件路径

相关文章

  • 联想pad跳转到录音机

    工作需要,要使用系统的录音机 方法1 该方法,停止录音后,会跳转到录音列表页面。需求是点击停止录音的按钮,直接返回...

  • uni-app中的导航跳转

    利用navigator进行跳转 1、跳转到普通页面 2、跳转到tabbar页面 利用navigateTo进行导航跳...

  • 联想小新pad pro 11.5英寸 评测

    笔者在唯品会双十二节日的活动中买了这款小新pad pro 11.5英寸版本+配套原版磁吸键盘和支架,总共用了200...

  • 下拉菜单点击旁边收起实现 • 踩坑记

    背景: 最近在搞一个需求:搜索框,输入时显示联想词下拉列表,当点击联想词跳转到搜索页,如果点击其他部分收起联想的下...

  • iOS 多个页面跳转方法

    跳跳跳 大家一起跳 嗨起来 A跳转到B B跳转到C C跳转到D 等等 ABCD解释:代表页面 A---->B...

  • np.pad()

    pad()函数 方法参数:pad(array, pad_width, mode, **kwargs)方法返回:填充...

  • pad

    #试试pad写作怎么样 记得记得姐姐

  • 小屁孩日记1-学习笔记(一)

    没有Pad,不能分屏幕,怎么办?我只有联想二合一,Windows系统,一根1代的触控笔。 “工欲善其事,必先利其器...

  • 什么是培训学校展销pad?

    这些您可能见过? Pad点餐系统 餐厅➕Pad平板➕点餐软件 例如俏江南,海底捞 Pad智能移动办卡终端 pad...

  • 省钱:支付宝怎么免费提现?

    一、支付宝免费提现攻略 之前给一个小妹子(就是帮她卖pad那个)转钱,她说: “直接给我转卡里吧,如果转到支付宝,...

网友评论

      本文标题:联想pad跳转到录音机

      本文链接:https://www.haomeiwen.com/subject/ftnlictx.html