Android 如何以编程方式禁用没有根目录的应用程序?

Android 如何以编程方式禁用没有根目录的应用程序?,android,samsung-mobile,android-package-managers,Android,Samsung Mobile,Android Package Managers,我刚刚发现了一个应用程序,它允许在后台禁用不带root的三星应用程序: 还有这个免费的: 这怎么可能?它甚至没有显示一个system type alertDialog来询问用户是否可以禁用该应用程序。他们是否发现了允许这样做的缺陷 它只适用于一些三星应用程序吗?其他应用程序和其他公司呢?也有可能吗 同样的机制可以用于其他操作吗?比如启用应用程序 我目前没有三星设备,因此我甚至无法检查此应用程序。如果您使用DevicePolicyManager的api setApplicationHidden

我刚刚发现了一个应用程序,它允许在后台禁用不带root的三星应用程序:

还有这个免费的:

  • 这怎么可能?它甚至没有显示一个system type alertDialog来询问用户是否可以禁用该应用程序。他们是否发现了允许这样做的缺陷

  • 它只适用于一些三星应用程序吗?其他应用程序和其他公司呢?也有可能吗

  • 同样的机制可以用于其他操作吗?比如启用应用程序


  • 我目前没有三星设备,因此我甚至无法检查此应用程序。

    如果您使用DevicePolicyManager的api setApplicationHidden将应用程序设置为设备所有者,则可以隐藏或取消隐藏应用程序。

    您的应用程序必须是设备的设备所有者。为了成为设备所有者,您需要进行NFC配置或adb命令shell。你可以找到弗洛伦特写得很好的博客

    然而,有一种新的方法可以让你的应用程序成为一个设备所有者,从安卓棉花糖开始。但是有很多限制。你必须是一个EMM提供商,你的客户必须拥有谷歌业务或edu许可证才能工作

    google play store上没有允许您的应用程序成为设备管理员的应用程序。作为一个设备拥有者,你可以在设备上控制很多东西,因此,我相信谷歌可能不想在没有适当保护措施的情况下提供这种控制


    关于三星设备,他们提供了他们的knox sdk(如上文所述)以及其他答案,让您可以访问某些不允许通过stock Android访问的API。

    我想这与应用程序具有设备管理权限有关,不确定。你提到的应用程序使用三星fort Knox sdk来禁用应用程序。它是三星特有的。@Piyus你确定吗?如果是的话,你能告诉我怎么做吗?“Pinks”写道,使用管理员权限是可能的。不,只有设备管理员才能做到这一点。@piyush我明白了。你能用三星提供的东西展示一下它是如何做到的吗?很有趣。你能告诉我怎么做吗?它是禁用应用程序,还是仅隐藏应用程序?这个应用程序就是这样工作的吗?一旦你得到这个特殊的管理员权限,你能用它做什么?你能禁用任何应用程序吗?使可能卸载?它是否仅适用于三星设备或任何设备?这是为设备所有者提供的,如果您的应用程序仅为设备管理员,则不可能使用此功能。这将仅隐藏应用程序,而不会禁用或卸载此功能。是的,皮尤斯是对的。这是设备所有者的api。你需要让你的应用程序以设备所有者的身份运行,所以普通第三方执行这些操作的唯一方法是通过root或三星的Knox?你能展示一下如何使用Knox吗?@androiddeveloper-visit-你应该在他们的网站上做更多的研究。文档非常清楚如何完成这一切。好吧,我在这里写了一篇文章:我是一个应用程序的作者,该应用程序使用KNOX功能,而没有设置为设备所有者。对我们来说,它工作得很好,而且很容易通过play store部署。多么奇怪,似乎“设备所有者”的权限仅限于谷歌的商业和教育机构。有点让你想知道。。。真正的设备所有者购买了什么?语法错误=逻辑错误。