- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有使用的应用程序 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
它在 Android 6.0 上自动授予,但我可以在设置中撤销它。想要检查它是否被授予以防用户撤销它,所以我这样做:
int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
//OK permission granted, let's do stuff
} else {
//I'll better ask for permission
}
有趣的是,条件总是满足,甚至权限被手动撤销。应用程序失败了……对我来说这看起来像是一个错误,是它还是我遗漏了什么?
最佳答案
您缺少一些东西:23 或更高的 targetSdkVersion
。
如果您的 targetSdkVersion
为 22 或更低,您将无法确定用户是从“设置”中授予还是撤消了权限。
关于android - checkSelfPermission() 似乎不适用于 WRITE_EXTERNAL_STORAGE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33525800/
当拥有 WRITE_EXTERNAL_STORAGE 权限时,我希望有权写入整个文件系统(例如 /sdcard、/storage/emulated/0 ,/storage/sdcard0,/mnt/s
我正在将我的 Android 应用程序的目标 SDK 版本升级到 23 (Android M),它具有新的运行时权限 (https://developer.android.com/training/p
我想要的只是能够在一个非常特定的文件夹(与我的应用程序相关)中为我的应用程序编写日志/异常报告,以便了解失败和异常,所以这是我正在使用的代码: File logFile = new File(Envi
正在关注 this discussion ,我已经签署了一个系统应用程序,我正在使用从制造商那里收到的特定设备的专有平台证书。我签名如下: java -jar out/host/linux-x86/f
据我所知,要将声音设置为铃声,应将其插入 MediaStore。在 MediaStore 中写入,需要 WRITE_EXTERNAL_STORAGE 权限。但是...有没有办法在不需要 WRITE_E
下面的代码输出是“Write granted”,但之后出现错误 '/storage/emulated/0/Download/test.txt: open failed: EACCES (Permiss
是否可以在不添加任何权限的情况下共享自己的应用程序屏幕截图? 这是我的其他应用程序代码,用于复制到缓存和共享 public void sendFile(File paramFile) {
我开始将 HERE Android Starter SDK 集成到我的应用程序中。根据文档(和运行时错误),初始化 MapEngine 需要权限 WRITE_EXTERNAL_STORAGE: Map
我有使用的应用程序 它在 Android 6.0 上自动授予,但我可以在设置中撤销它。想要检查它是否被授予以防用户撤销它,所以我这样做: int permissionCheck = ContextC
如 documentation 中所述,从 API 级别 19 开始,WRITE_EXTERNAL_STORAGE 权限不应该是必需的。因此,我已将其写入 list : 但是,当我运行使用 Goog
有没有一种方法可以使用 Intent.ACTION_SEND 来共享屏幕截图而不需要 android.permission.WRITE_EXTERNAL_STORAGE? 分享部分如下: In
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有一个 android 应用程序需要以下权限才能运行。 ACCESS_FINE_LOCATION、ACCESS_WIFI_STATE、WRITE_EXTERNAL_STORAGE、RECORD_AU
安卓 6 我编写了下一个检查权限的代码,如果没有这样的权限,它会要求用户提供它们。 private void checkDiskPermission () { if (ActivityComp
我目前使用此方法有效地将图像文件转换为内容 uri... protected static Uri convertFileToContentUri(Context context, File file
我正在使用下载管理器下载文件并将其保存到外部存储,如下所示: DownloadManager.Request req = new DownloadManager.Request(uri); req.s
在 android 6 或更高版本中,当用户第一次打开应用时询问他一些权限如果他不允许则退出应用程序 我的应用程序必须有一些权限是读取和写入外部存储,如何实现这一点 我试过了 if (Build.VE
声明就够了吗?还是我也必须声明 ? Javadocs 省略了这一重要信息。 最佳答案 最好是显式地声明这两个权限,但仅声明 android.permission.WRITE_EXTERNAL_STOR
我使用 DownloadManager 下载照片并将其保存到外部图片目录: .setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTU
AS 中有一个关于 android.permission.WRITE_EXTERNAL_STORAGE 的 lint 警告.警告说,当面向 Android 10 及更高版本时,该权限将不再提供写入权限
我是一名优秀的程序员,十分优秀!