java-是否可以通过编程方式关闭Android设备上的USB存储设备?

java-是否可以通过编程方式关闭Android设备上的USB存储设备?,第1张

概述我试图一遍又一遍地搜索,并感到困惑,我们是否可以控制USB存储而无需植根电话,如果可以的话?我尝试了以下方法来启用和禁用权限,但全部无效:StorageManagerstorage=(StorageManager)getApplicationContext().getSystemService(STORAGE_SERVICE);Methodmethod=storage.getCla

我试图一遍又一遍地搜索,并感到困惑,我们是否可以控制USB存储而无需植根电话,如果可以的话?我尝试了以下方法来启用和禁用权限,但全部无效:

StorageManager storage = (StorageManager)getApplicationContext().getSystemService(STORAGE_SERVICE); Method method = storage.getClass().getDeclaredMethod("enableusbMassstorage"); method.setAccessible(true);  Object r = method.invoke(storage);//And to disble mass storage:StorageManager storage = (StorageManager) getApplicationContext().getSystemService(STORAGE_SERVICE);Method method = storage.getClass().getDeclaredMethod("disableusbMassstorage");method.setAccessible(true);Object r = method.invoke(storage);

如果有人对此有任何想法,请分享您的知识.

提前致谢.

解决方法:

您问题的简短答案是“否”.您不能以编程方式使用USB大容量存储权限.您也不会找到任何能可靠地对任何/所有手机执行此 *** 作的AndroID应用.

默认情况下,AndroID框架不允许第三方应用程序以编程方式绕过USB存储权限.该选择始终留给用户,这是正确的方法.只需考虑一下:如果允许,任何第三方应用程序都可能滥用该许可并通过USB连接传输数据.

您尝试使用的方法假设我们知道相关方法的名称,并通过反射对其进行调用.这将对某些修改了基本框架并公开了相关API调用的OEM起作用.但是它假定您知道这些方法的名称,并且只能在现有大量AndroID手机模型中的一小部分上使用.它不适用于大多数手机,当然也不能用于具有原始AndroID OS源代码的所有Nexus设备.

就这些.

总结

以上是内存溢出为你收集整理的java-是否可以通过编程方式关闭Android设备上的USB存储设备?全部内容,希望文章能够帮你解决java-是否可以通过编程方式关闭Android设备上的USB存储设备?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1089623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存