当前位置: 首页 > 知识库问答 >
问题:

Android v6权限-请求对我的SDK的权限

瞿和硕
2023-03-14

我再一次需要你的帮助堆叠天花!

我一直在开发SDK,现在需要验证用户是否授予了位置或文件写入等权限。

验证是可以的,但是我想如果需要的话,我应该请求许可。问题是,我绝对不能访问任何活动。我可以使用appContext来检查权限,但是我不能像这样监听onRequest estPermissionsResult。

有没有一种聪明的方法可以向我这边请求许可,或者我应该让使用我的SDK的开发人员及时请求许可,以便我以后可以使用我(和他们)需要的功能?

谢谢你的帮助!

共有2个答案

丌官子安
2023-03-14

我认为你必须声明权限留档和委托权限麻烦你的sdk用户,因为库可能是模型的一部分,它不能操纵UI(权限对话框)

在没有活动的情况下,不能调用权限对话框

楚宪
2023-03-14

就个人而言,我更希望SDK让我作为开发人员处理何时请求权限,因为我可能需要给用户一些警告、提前处理或在提示他们之前做其他事情。

如果你看一下像Google Play Location services这样的SDK,它会将位置权限的处理留给开发人员,并简单地向可能失败的调用添加一个警告,说明它可能抛出一个安全异常

他们还使用了一个名为android.support.annotation.要求权限的注释,您可以使用它来帮助SDK的用户。使用此注释将向您提供上述异常警告/错误。

官方文件中的示例:

@RequiresPermission(anyOf = {Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION})
public abstract Location getLastKnownLocation(String provider);

因此

 类似资料:
  • 我一直在尝试实现运行时权限。下面是它的代码片段: RunTimePermissionsUtil。JAVA 在一个名为AddFileActivity的活动中,我在一个点击事件中实现了这个监听器,其代码如下: 所以,我所有的代码都会执行,它会进入onNeed权限()代码,其中,它会进入 但是,令人惊讶的是,在此之后,没有任何对话框要求获得摄像头的运行时权限,相反,对话框关闭并再次显示活动。 有没有人能

  • 我将只同意graph API中的特定管理权限。 但它请求所有租户权限。 当前逻辑为 如何请求对特定权限的同意?

  • CodenameOne的似乎可以很好地使用Android TargetSDKVersion21权限。但在23号,它错误地要求一个 允许[...]访问设备上的照片、媒体和文件? 权限,但由于丢失而失败。 (没有摄像头的模拟器请求媒体文件--会不会有什么东西搞混了?) 更新(DDMS输出) (settingsform.java:98)

  • HttpURLConnection使我的应用程序崩溃,因为即使我在清单文件中使用标记,也没有授予internet权限

  • 我想知道如何在单个请求上添加多个权限。这是关于Marshmallow版本的Android。

  • 我已经在我的应用程序清单文件中列出了RECEIVE_SMS和READ_SMS的权限,它们也有不同的权限字符串。 授予相应的权限。然而,我注意到,在授予(用户)任何一个权限(或)时,我们都可以执行这两项任务。我的问题是,如果他们两人执行不同的任务: 1):它允许应用程序读取用户手机上的所有短信(当前存在)。 2) :它允许应用程序在用户使用应用程序时收听用户手机上接收到的所有短信。 在请求权限和拒绝