我正在构建一个应该在没有任何屏幕的硬件上运行的应用程序。要运行该应用程序,我需要两个权限:相机和写入存储。由于我的应用程序没有任何UI,并且设备没有任何显示UI的方法,我想知道如何为应用程序授予权限。
在此特定应用程序中,用户已经知道当用户按下按钮时设备将拍摄图像。因此从用户的角度来看,无需明确授予权限。
提前致谢。
答案 0 :(得分:0)
无法在运行时添加权限,它们必须在AndroidManifest中显式,因为它们需要在安装时呈现给Android用户。
我建议你看看以下帖子:Permission issue while starting a service from android
在服务中声明服务时,可以强制执行对服务的全局访问 清单的标签。通过这样做,其他应用程序将需要声明一个 在自己的清单中相应的元素能够启动,停止, 或绑定到服务。
从GINGERBREAD开始,当使用Context.startService(Intent)时,你可以 还设置了Intent.FLAG_GRANT_READ_URI_PERMISSION和/或 意图上的Intent.FLAG_GRANT_WRITE_URI_PERMISSION。这将授予 服务临时访问Intent中的特定URI。 访问将保持不变,直到服务为此调用stopSelf(int) 启动命令或更晚的命令,或直到服务完全 停止。这适用于授予对其他应用程序的访问权限 没有请求保护服务的权限,甚至是 服务根本不会导出。
此外,服务可以保护单个IPC呼叫 权限,通过调用checkCallingPermission(String)方法 在执行该调用的实现之前。
有关详细信息,请参阅“安全和权限”文档 权限和安全性。
答案 1 :(得分:0)
在没有UI(没有任何xml布局)的情况下进行透明活动,并为android marshmallow权限执行代码。当您的应用程序运行时,然后从服务调用此活动,只有当app从硬件或任何地方触发时,用户才会看到权限。 app是开放的透明活动是开放的,用户可以给予许可。