以Android open failed: ENOENT (No such file or directory)為列,分析android 6.0 以上的動態(tài)權(quán)限
在Android6.0以下所有的權(quán)限需要使用時在清單配置中就可以了箱锐,但自從Android6.0以后,Android就為權(quán)限分為了
normal:這個權(quán)限類型并不直接威脅到用戶的隱私,可以直接在manifest清單里注冊豆挽,系統(tǒng)會幫我們默認授權(quán)的甲捏。
dangerous:這個可以直接給app訪問用戶一些敏感的數(shù)據(jù)充甚,不僅需要在manifest清單里注冊以政,同時在使用的時候,需要向系統(tǒng)請求授權(quán)伴找。
所以說我們新建文件時光在Manifest清單是配置是不夠的盈蛮,會閃退包上述錯誤!
解決方案:就是在需要時新建文件時獲取文件讀取的動態(tài)權(quán)限
intpermission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if(permission?!=?PackageManager.PERMISSION_GRANTED)?{
//?We?don't?have?permission?so?prompt?the?user
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE
);
}