zcydanzcy 2016-08-16 09:40 采纳率: 100%
浏览 7160
已采纳

从一个APP打开另一个APP ,提示 not exported from uid

Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.qq.reader/.widget.picbrowser.PictureActivity } from ProcessRecord{3823559b 16851:com.pax.market.android.app/u0a322} (pid=16851, uid=10322) not exported from uid 10324

  public static void openApp(Activity activity,String packageName) {
PackageInfo pi;
try {
    pi = activity.getPackageManager().getPackageInfo(packageName, 0);
    Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
    resolveIntent.setPackage(pi.packageName);
    PackageManager pManager = activity.getPackageManager();
    List apps = pManager.queryIntentActivities(
            resolveIntent, 0);

    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 (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();
}

}

  • 写回答

5条回答 默认 最新

  • zcydanzcy 2016-08-17 03:18
    关注

    List apps = pManager.queryIntentActivities(resolveIntent, 0);查询出的符合条件的activity是有可能是多个的。
    对于com.qq.reader来说可查询出两个:
    com.qq.reader.widget.picbrowser.PictureActivity
    com.qq.reader.activity.SplashActivity
    其中PictureActivity是不能被启动的,因为它的exported=false,但是SplashActivity是可以启动的。
    代码修改了一下,是可以启动qqreader的,是从SpalshActivity启动的。

    public static void openApp(Activity activity,String packageName) {
    PackageInfo pi;
    try {
    pi = activity.getPackageManager().getPackageInfo(packageName, 0);
    Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
    resolveIntent.setPackage(pi.packageName);
    PackageManager pManager = activity.getPackageManager();
    List 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;
            String className = app.activityInfo.name;
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
            ComponentName cn = new ComponentName(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();
    }
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择