Как открыть файл, редактировать и сохранять с помощью wps из моего приложения, используя fileuri для устройств oreo - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь открыть файл с помощью сторонних приложений, таких как wps, из моего приложения.как только мы отредактировали файл с помощью сторонних приложений, он не сохраняет файл в исходном местоположении.

Я устанавливаю права доступа к файлу, как показано ниже.

fileIntent.setFlags (Intent.FLAG_GRANT_WRITE_URI_PERMISSION |Intent.FLAG_GRANT_READ_URI_PERMISSION);

Даже если файл открывается в режиме только для чтения и копируется при сохранении после редактирования, а не в том месте, где мы открыли файл.

ниже - мойкод

Intent fileIntent = new Intent(Intent.ACTION_VIEW);
    fileIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        path = FileProvider.getUriForFile(getActivity(), BuildConfig.APPLICATION_ID + ".provider", attachmentFile);
        List<ResolveInfo> resInfoList = getActivity().getPackageManager().queryIntentActivities(fileIntent, PackageManager.MATCH_DEFAULT_ONLY);
        for (ResolveInfo resolveInfo : resInfoList) {
            String packageName = resolveInfo.activityInfo.packageName;
            getActivity().grantUriPermission(packageName, path, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
        }
        fileIntent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION|Intent.FLAG_GRANT_READ_URI_PERMISSION);
    } else {
        path = Uri.fromFile(attachmentFile);
    }

        MimeTypeMap mime = MimeTypeMap.getSingleton();
        String type = mime.getMimeTypeFromExtension(fileupload.getExtension());
        fileIntent.setDataAndType(path, type);

        try {
            activity.startActivity(fileIntent);
        } catch (ActivityNotFoundException e) {
            Toast.makeText(activity, getString(R.string.noexternal_applicationnotavailable), Toast.LENGTH_SHORT).show();
        }
...