Я пытаюсь открыть файл с помощью сторонних приложений, таких как 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();
}