Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
711 views
in Technique[技术] by (71.8m points)

android security - How to fix SecurityException: Permission Denial: opening provider that is not exported from uid

I want to open another application with an import window and send a file to it for processing.

final Intent sendIntent = new Intent(Intent.ACTION_MAIN);
sendIntent.setComponent(new ComponentName("com.example.editor", "com.example.editor.ActivityImportFile"));

Uri uri = FileProvider.getUriForFile(ma, BuildConfig.APPLICATION_ID + ".provider", file);
ArrayList<Uri> uris = new ArrayList<>();
uris.add(uri);
sendIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
ma.startActivity(sendIntent);

in the second application I get Uri and I want to see its properties but I get an error on the

Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);

If you send Uri through the application selection window, then everything works, but if you open the program by specifying the exact package and Activity, the error is:

java.lang.SecurityException: Permission Denial: opening provider com.example.viewer.zecondary.GenericFileProvider from ProcessRecord{1b99fc80 16269:com.example.editor/u0a207} (pid=16269, uid=10207) that is not exported from uid 10204

I tried this android.exported=true but it is forbidden

How to fix it?

question from:https://stackoverflow.com/questions/65854356/how-to-fix-securityexception-permission-denial-opening-provider-that-is-not-ex

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...