我试图保存一个csv文件到我的手机和我的目标SDK级别是26,所以我试图检查运行时的权限,而运行我的应用程序。尽管我在清单文件中赋予了必要的权限,但在检查此权限的活动中返回false。我怎么才能修好这个?
清单文件的开始
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.something">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
活动的相关部分如下
public void saveToExcel() throws IOException {
String baseDir = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "AnalysisData.csv";
String filePath = baseDir + File.separator + fileName;
File file = new File(filePath);
CSVWriter writer = null;
String[] data = {"Hold Time", "Down-Down Time", "Up-Down Time"};
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
if (file.exists() && !file.isDirectory()) {
FileWriter mFileWriter = null;
mFileWriter = new FileWriter(filePath, true);
writer = new CSVWriter(mFileWriter);
Log.d(TAG, "saveToExcel: exist");
} else {
writer = new CSVWriter(new FileWriter(filePath));
Log.d(TAG, "saveToExcel:do not exist");
}
writer.writeNext(data);
writer.close();
} else {
Log.d(TAG, "saveToExcel: permission not granted");
}
}
在Android6和更高版本中,您需要询问运行时权限:https://developer.Android.com/training/permissions/requestion
在您的示例中,您需要询问write_external_storage
和read_external_storage
的运行时权限
我已经创建了自己的android。这样我就可以使用隐藏的API调用“DisplayManager.connectWifiDisplay()”。 当我运行应用程序并调用该方法时,在通过Wifi Direct连接到显示器后, 我得到以下例外: java.lang.SecurityException:连接到wifi显示器所需的权限:用户10105和当前进程都没有android.Permission.CO
在Android M(预览版)中,用户可以选择特定的应用程序并检索特定的权限。 所以我想问的是如何在运行时检查授权权限?
我想使用公共外部存储在设备中写入映像。因此,我有1)在清单中写入权限标签,2)在需要时使用请求权限。但我仍然有这个例外:。 为什么?我已经读过了https://developer.android.com/guide/topics/permissions/overview#normal-很危险,但这不能回答我的问题。 我已授予Android设备的存储权限。因此,我的条件if(permissionCh
我在清单中添加了对外部存储设备的写访问权限,并在我的Android手机中授予了这些权限。如果他们不存在,我甚至会在执行时要求他们。 然而,我总是得到这个例外: Java语言io。FileNotFoundException:/storage/simulated/03b3d97bd-5186-4506-97dc-9994b7ce0761(权限被拒绝) 你知道为什么吗? 在清单文件中:
我是android的新手,不知道我做错了什么,这个类得到了经度和纬度并发送到另一个类,代码抛出了一个错误请告诉我该怎么做怎么做: public void onRequestPermissionsResult出错(int requestCode,String[]permissions,int[]grantResults
首先,我知道这是一个重复的问题,但我已经看过了其他类似问题的答案,没有找到成功的解决方案。 我已经开发了一款应用程序,可以在我的测试设备上完美运行,这是一款运行Android L(5.0.1)的三星S4。不过,我希望这款应用程序也能在较新版本的Android上运行。 我知道Android M的请求权限已更改,因此必须在运行时请求权限,但当我尝试实现此功能时,对话框从未出现,因此从未请求所需的权限。