记录Android fragment的问题

记录Android fragment的问题

需求是文档里从文件管理器里选一个音频然后上传到后端去

结果一直onActivityResult函数报错找不到getactivity

教训就是
千万不要在activity里重写onActivityResult函数!!!
千万不要在activity里重写onActivityResult函数!!!
千万不要在activity里重写onActivityResult函数!!!
直接在fragment里重写就好

附miui12测试可用的把content路径修改为绝对路径的代码

private static String getFilePathForN(Uri uri, Context context) {
        Uri returnUri = uri;
        Cursor returnCursor = context.getContentResolver().query(returnUri, null, null, null, null);
        /*
         * Get the column indexes of the data in the Cursor,
         *     * move to the first row in the Cursor, get the data,
         *     * and display it.
         * */
        int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
        int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
        returnCursor.moveToFirst();
        String name = (returnCursor.getString(nameIndex));
        String size = (Long.toString(returnCursor.getLong(sizeIndex)));
        File file = new File(context.getFilesDir(), name);
        try {
            InputStream inputStream = context.getContentResolver().openInputStream(uri);
            FileOutputStream outputStream = new FileOutputStream(file);
            int read = 0;
            int maxBufferSize = 1 * 1024 * 1024;
            int bytesAvailable = inputStream.available();

            //int bufferSize = 1024;
            int bufferSize = Math.min(bytesAvailable, maxBufferSize);

            final byte[] buffers = new byte[bufferSize];
            while ((read = inputStream.read(buffers)) != -1) {
                outputStream.write(buffers, 0, read);
            }
            Log.e("File Size", "Size " + file.length());
            inputStream.close();
            outputStream.close();
            Log.e("File Path", "Path " + file.getPath());
            Log.e("File Size", "Size " + file.length());
        } catch (Exception e) {
            Log.e("Exception", e.getMessage());
        }
        return file.getPath();
    }

思路是因为安卓7.0之后限制了内容提供器,用文件流新开一个文件,然后存到自己能用的地方去

原创文章 6 获赞 0 访问量 1494

猜你喜欢

转载自blog.csdn.net/xxy41092/article/details/105953868