Skip to content Skip to sidebar Skip to footer

Permission Denial: Starting Intent Not Exported From Uid

I came to this problem when I open an app which already installed in my phone from my own app . Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.

Solution 1:

List apps = pManager.queryIntentActivities(resolveIntent, 0); more than one activity will be found.

eg:appName: QQReader ,packagename:com.qq.reader .

you will find two activities:

com.qq.reader.widget.picbrowser.PictureActivity

com.qq.reader.activity.SplashActivity

PictureActivity cannot be started,since it's exported=false, SplashActivity can be started

code modified as below:

publicstaticvoidopenApp(Activity activity,String packageName) {
PackageInfo pi;
try {
    pi = activity.getPackageManager().getPackageInfo(packageName, 0);
    IntentresolveIntent=newIntent(Intent.ACTION_MAIN, null);
    resolveIntent.setPackage(pi.packageName);
    PackageManagerpManager= activity.getPackageManager();
    List<ResolveInfo> apps = pManager.queryIntentActivities(
            resolveIntent, 0);
    for(ResolveInfo app: apps){

        Log.d(TAG,String.format("%s %s",app.activityInfo.packageName,app.activityInfo.name));
        packageName = app.activityInfo.packageName;
        StringclassName= app.activityInfo.name;
        Intentintent=newIntent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        ComponentNamecn=newComponentName(packageName, className);
        intent.setComponent(cn);
        try {
            activity.startActivity(intent);
        }catch(SecurityException e){
            e.printStackTrace();
        }
    }
  /*  ResolveInfo ri = (ResolveInfo) apps.iterator().next();
    if (ri != null) {
        packageName = ri.activityInfo.packageName;
        String className = ri.activityInfo.name;
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        ComponentName cn = new ComponentName(packageName, className);
        intent.setComponent(cn);
        activity.startActivity(intent);
    }*/
} catch (PackageManager.NameNotFoundException e) {
    Log.e(TAG, "Package Name not found: " + e.getMessage() + ", App is not installed.");
} catch (SecurityException e){
    SnackBar.newBuilder().activity(activity).
            text(activity.getString(R.string.permission_denied_to_open))
            .build().show();
}

}

Post a Comment for "Permission Denial: Starting Intent Not Exported From Uid"