问题标签 [android-permissions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android USB 设备权限和意图过滤器
我有一个将与 USB 设备交互的 Android 应用程序,在Android 开发人员官方文档中获取与设备通信的权限它说:
注意:如果您的应用程序使用意图过滤器在 USB 设备连接时发现它们,如果用户允许您的应用程序处理意图,它会自动获得权限。如果没有,您必须在连接到设备之前在您的应用程序中明确请求权限。
意图过滤器将在 AndroidManifest.xml 中声明,并使用包含供应商 ID 和产品 ID 的资源文件。
如果我插入我的设备,即使声明了 Intent,也不会发生任何事情。所以我必须使用同一官方文档中提到的方法,其中涉及明确请求许可。
这可行,我可以与设备通信,但碰巧用户每次启动应用程序或重新连接设备时都必须授予权限。最后,这将在每次插入设备并启动应用程序时向用户显示一条消息,要求确认,并且每次都给予相同的权限是不可取的。
因此,如果“......自动获得许可......”部分不起作用。
我如何使意图过滤器工作?
我错过了什么?
我还有其他选择吗?
这个问题:Android USB Permissions Dialog 从来没有出现过相反的问题,但该解决方案对我不起作用。
使应用程序成为系统应用程序并绕过权限对我也不起作用,如此处所述:USB open accessory permissions through a service in android
任何帮助是极大的赞赏
android - Android开发:如何使使用权限起作用?
我想知道如何使使用权限有效?事实上,我正在尝试通过一个简单的代码拨打电话,但在电话应用程序中,我必须按下绿色电话来确认通话。为了使应用程序电话自动我尝试介绍
在 AndroidManifest.XML 但它不会改变任何东西。使用权限是否存在都没有关系,我必须确认通话。
我在许可方面做错了吗?
android - 如何修复 HARDWARE_TEST 权限错误?
我正在开发一个使用一些硬件部件(如相机或 Wi-Fi)的 android 应用程序,并且我在清单中使用 HARDWARE_TEST 权限:
我从来没有遇到过任何问题,但是现在突然当我 eclipse 和 manifiest 文件时,这一行中显示了一个新错误:
“权限仅授予系统应用程序”
我必须修复它的唯一方法是删除这一行。
为什么会出现这个错误??我该如何解决?谢谢
编辑:
我找到了解决方案并回答了我自己的问题:
我的问题出在 android:targetSdkVersion 中,manifiest 的值为 15,并且 proyect 构建目标已检查 API 级别 16(Android 4.1.2)
所以我已将 android:targetSdkVersion 值更改为 16,并且 Proyect 属性 > Android > “Proyect Buid Target”也检查了 16。
android - 如果我已经有 ACCESS_FINE_LOCATION,我可以省略 ACCESS_COARSE_LOCATION 吗?
我有一个已经ACCESS_FINE_LOCATION
在清单中请求权限的 GPS 应用程序,现在我想添加一个需要ACCESS_COARSE_LOCATION
.
我是否正确假设这ACCESS_FINE_LOCATION
已经足够了,我可以ACCESS_COARSE_LOCATION
从我的清单中省略?
android - 如果我使用相同的签名进行签名,我能否收到另一个 Android 应用的 C2DM Intent?
我com.example.myapp
安装了一个收到C2DM
Intent
s 的应用程序 ( )。我想借助它来执行我自己的处理,以Intent
在单独的应用程序 ( com.example.myapp2
) 中响应这些 s。根据this answer,C2DM
客户端系统寻找:
Intent 的广播接收器:
com.google.android.c2dm.intent.REGISTRATION
有权限的:
.permission.C2D_MESSAGE
在原始应用程序中,定义和使用了以下权限,如 C2DM 文档中所述
这是com.example.myapp2
的清单,我在其中也使用了该权限:
我C2DMReceiver
的是com.example.myapp2.C2DMReceiver
。请注意,我没有在听com.google.android.c2dm.intent.REGISTRATION
Intent
s,因为我不关心注册。我只关心接收已经接收的Intent
s 。com.example.myapp
在我IntentFilter
的 for com.google.android.c2dm.intent.RECEIVE
Intent
s 中,我过滤了两者com.example.myapp
和com.example.myapp2
category
s,因为C2DM
并没有具体说明 a 的C2DM
Intent
外观。任何帮助将不胜感激。
我已经验证com.example.myapp2
有com.example.myapp.permission.C2D_MESSAGE
权限。如果我使用调试密钥运行,我没有它,但如果我使用释放密钥运行,我有它。显然,我正在使用发布密钥在我的设备上运行该版本。
当com.example.myapp
收到一个C2DM
Intent
com.example.myapp2
不收到它。关于如何调试或如何使其工作的任何想法?甚至可能吗?
android - Android:应用程序级权限
我做了一个应用程序说“TestApp”,其中包含一个内容提供者。内容提供者共享对所有其他应用程序的数据库访问。android中是否有一种机制只允许少数其他具有特定类型权限的应用程序访问“TestApp”的内容提供者?
我不希望没有特定权限的应用程序访问“TestApp”的内容提供者。
作为一个新手,我不知道提出的问题应该具有的标准。
请帮忙。
android - 是否可以从 Android 服务调用 getevent?
是否可以从 Android 服务运行 getevent 并获得类似于在开发机器上运行 adb 以从命令提示符调用 getevent 时看到的输出?当我尝试类似的事情时:
我为每个设备获得的输出如下所示:
无法打开 /dev/input/event[n],权限被拒绝
由于Android的安全保护,是否无法访问这样的低级信息?有可能在“根”设备上吗?
为什么我要这样做:我想在 Android 设备上记录用户的操作(触摸和手势事件)以进行可用性测试。无障碍服务似乎是要走的路,但信息不够详细。例如,对于滑动手势,我无法获取用户滑动位置的屏幕坐标。我在想,从触摸屏获取低级输入可能会让我获得更详细的信息。也许有更好的方法来做到这一点?(我是Android世界的新手。这种事情在Windows上很容易。)
android - 在安装之前扫描android中应用程序的权限
我对android完全陌生,我对这个问题感到震惊......是否可以在将android应用程序安装到移动设备之前扫描它的权限列表。例如,当显示用户权限列表对话框时,我希望我的应用程序扫描这些权限,然后在扫描后向用户建议安装..
java - Android 权限 ACCES_NETWORK_STATE 错误?
我在我的 android 应用程序中使用 Google V2,它运行良好。然而,Eclipse 每次运行时都会给我这个警告:
但是我已经在清单中添加了这个权限,并且在我的 xml 中有这个权限:
我想我已经设置正确了,但 eclipse 仍然给我这个警告。有谁知道为什么?
android - 未经许可不允许启动服务意图 - 发件人没有获得权限
我正在使用 Mark Murphy 的优秀 Commonsware 书籍——但要消化的东西很多。我构建了“FakePlayer”应用程序(伪装成 mp3 播放器)。它包含一项服务。作为学习经验,我尝试编写一个简单的应用程序(只有一个按钮),其点击处理程序可以:
它工作正常 - 服务启动正常。我注意到 Eclipse 抱怨该服务没有权限,所以我通过添加 2 行 android:permissions 和 android:exported 来更新服务的清单:
我在 Eclipse 下使用“调试”将播放器应用程序重新加载到设备上(我使用的是 Galaxy S2)。它似乎奏效了;入门应用程序导致了我预期的权限异常。
然后我添加到启动应用程序的清单(授予它权限):
我将启动应用程序重新加载到设备上(使用 Eclipse 下的调试)。仍然在启动应用程序中获得权限错误。
我从设备中删除了这两个应用程序并重新安装(使用调试...),首先是服务应用程序,然后是启动程序。仍然得到烫发错误。
我正在研究 Murphy 先生的高级 Android 书中的“如何使用远程服务”部分,所以我意识到这可能不是跨应用程序工作的最佳方式。
我做了一个“adb shell dumpsys package”,找到了启动应用程序,发现它有“permissionsFixed=false”,没有“grantedPermissions”部分。我认为这意味着启动应用程序中的清单更改没有设法将烫发添加到应用程序中。但我不知道为什么。作为一种学习体验,到目前为止它只产生了困惑......
任何线索都非常感谢!谢谢!