Android 是否打算为所有用户卸载应用程序? 背景
调用卸载应用程序的正常方式是使用以下意图: 问题 从Android版本开始(不记得是哪个版本),可以在同一台设备上为多个用户安装应用程序 这意味着有一种新的卸载应用程序的方法,可以为所有用户卸载它(图片取自Lollipop-Android 5.0): 问题 我在文档中搜索过,但找不到这些问题的答案:Android 是否打算为所有用户卸载应用程序? 背景,android,android-intent,android-5.0-lollipop,uninstallation,multi-user,Android,Android Intent,Android 5.0 Lollipop,Uninstallation,Multi User,调用卸载应用程序的正常方式是使用以下意图: 问题 从Android版本开始(不记得是哪个版本),可以在同一台设备上为多个用户安装应用程序 这意味着有一种新的卸载应用程序的方法,可以为所有用户卸载它(图片取自Lollipop-Android 5.0): 问题 我在文档中搜索过,但找不到这些问题的答案: 有没有办法通过意图执行此操作?也许有什么东西可以补充我上面写的意图 ADB是否有为所有用户删除应用程序的新命令 有没有办法检查是否为多个用户安装了应用程序 有没有办法通过意图执行此操作?大概 我在
false
和true
之间的区别
final Uri packageURI = Uri.parse("package:" + "some.package.name");
final Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI);
uninstallIntent.putExtra("android.intent.extra.UNINSTALL_ALL_USERS", false or true);
startActivity(uninstallIntent);
结果
ADB是否有为所有用户删除应用程序的新命令
不,命令保持不变
`adb uninstall 'some.package.name'`
这将为所有用户删除该应用程序。我不知道指定特定用户的方法
有没有办法检查是否为多个用户安装了应用程序
不,我不知道。事实上,当设置应用程序决定在选项菜单中放置该选项时,基本上是基于是否有多个用户,而不是当前用户和其他用户都安装了应用程序
更不用说,大多数方法中,你甚至需要知道设备上是否有多个用户,比如,需要系统API和隐藏的权限。所以,我甚至不知道为什么这是一个公共方法
此外,通过在设备上创建虚拟用户,您可以轻松地测试所有问题,就像我做的那样。你甚至不需要登录谷歌账户 这仍然适用于所有用户“adb卸载”@zoram真的吗?你测试过了吗?此外,是否可以使用ADB卸载指定/当前用户的应用程序?谢谢。我需要知道是否为我的应用程序(此处:)的多个用户安装了一个应用程序,以便我能够让用户选择是为所有用户卸载还是仅为当前用户卸载。多用户支持实际上是从Android 4.2开始的,我找不到所需的信息。我想我可以使用PackageManager->getPackagesForUid(此处:)来获取特定用户的软件包,但为了获取用户ID列表,我需要使用UserManager->getUserProfiles,然后使用getSerialNumberForUser“,但是”getUserProfiles需要API 21,甚至不能授予“管理用户”的权限(如您所写的)。。。无论如何,我会勾选你的答案,并创建一个新问题,你写的“它基本上是基于是否有多个用户”。我如何知道有多个用户帐户?在“/mnt/user”上至少有一个文件夹是否意味着有多个用户?此外,所有adb命令是否影响所有用户(如清除应用程序的数据),而不仅仅是当前用户?对于adb,您可以运行:
adb卸载--user-1'some.package.name'
-这意味着所有用户都要卸载,因为-1=UserHandle.user\u all
和if(userId==UserHandle.user\u all){userId=UserHandle.USER_OWNER;flags |=PackageManager.DELETE_ALL_USERS;}
是否有类似onDestroy的函数?这样,用户卸载我的应用程序时,我可以运行代码。
`adb uninstall 'some.package.name'`