如何为android软件包启动应用程序信息

如何为android软件包启动应用程序信息,android,Android,使用上面的代码,我可以得到一个安装了应用程序列表的屏幕。如何访问选定应用程序的应用程序信息页面 基本上,它应该是像添加一些额外的数据到意图(包名),但我无法找到一种方法来做到这一点 你应该使用android.provider.Settings.ACTION\u APPLICATION\u DETAILS\u Settings而不是android.provider.Settings.ACTION\u APPLICATION\u Settings,并将你的应用程序的软件包名称设置为数据 //redi

使用上面的代码,我可以得到一个安装了应用程序列表的屏幕。如何访问选定应用程序的应用程序信息页面

基本上,它应该是像添加一些额外的数据到意图(包名),但我无法找到一种方法来做到这一点


你应该使用android.provider.Settings.ACTION\u APPLICATION\u DETAILS\u Settings
而不是android.provider.Settings.ACTION\u APPLICATION\u Settings
,并将你的应用程序的软件包名称设置为数据

//redirect user to app Settings
Intent i = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setData(Uri.parse("package:" + getPackageName()));
startActivity(i);
试试这个:

Intent intent_as = new Intent(
                    android.provider.Settings.ACTION_APPLICATION_SETTINGS);

            startActivity(intent_as);

我测试它的SDK R(30)-Android 11 这样,您可以使用Settings.ACTION\u APPLICATION\u DETAILS\u设置,并将应用程序的包名设置为目标数据

//redirect user to app Settings
Intent i = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setData(Uri.parse("package:" + getPackageName()));
startActivity(i);
如果您希望访问应用程序权限

Intent intent = new Intent();
   intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
   Uri uri = Uri.fromParts("package", this.getPackageName(), null);
   intent.setData(uri);
   startActivity(intent);

您应该使用
android.provider.Settings.ACTION\u APPLICATION\u DETAILS\u Settings
而不是
android.provider.Settings.ACTION\u APPLICATION\u Settings
,并将应用程序的包名设置为目标数据。请参阅下面的我的答案,我正在使代码与2.2兼容,以便操作\u应用程序\u详细信息\u设置在那里不起作用。获取以下eror:Thread[main](挂起(异常活动NotFoundException))检测。checkStartActivityResult(int,Object)行:1536 Instrumentation.ExecutStartActivity(上下文,IBinder,IBinder,Activity,Intent,int)行:1388 MainActivity(Activity)。startActivityForResult(Intent,int)行:3195 MainActivity(Activity)。startActivity(Intent)行:3302 MainActivity。onClick(View)行:302按钮(View)。performClick()行:3571查看$performClick.run()行:14247这行吗?你能打开其他应用程序信息吗?-当然,如果你知道包名,我刚刚尝试了它,它可以工作,你的目标是哪个api级别?你要传递的包名是什么?尝试使用方法getPackageName()或验证你的包名,如果你把它作为字符串传递(如“com.company.myapp”)android.provider.Settings.ACTION\u APPLICATION\u DETAILS\u Settings
添加到api级别9(android 2.3 FROYO)中,因此,如果您的minSdkVersion<9,那么此代码将无法在Android版本为@gunar的设备上运行:是的,您可以,当然您应该知道要打开其设置的应用程序的packageName