我有一个路由设备,当我这样做时
adb shell cat /data/misc/bluetooth/dynamic_auto_pairing.conf
它会打印此文件的内容。
但是在我的代码中,当我写这样的东西时,它说该文件不存在。从控制台我看到我知道它在那里,但从代码我无法阅读它。我的问题是什么问题,我错过了一些许可或问题是什么?有人可以提供一些代码来阅读此文件中的内容。
谢谢
File pa = new File("/data/misc/bluetooth/","dynamic_auto_pairing.conf");
//this doesn't works also
//File pa = new File("/data/misc/bluetooth","dynamic_auto_pairing.conf");
//File pa = new File("/data/misc/bluetooth/dynamic_auto_pairing.conf");
if(pa.exists()){
Log.v("tag", "does exists");
}else{
Log.v("tag", "does NOT exist");
}
答案 0 :(得分:2)
如果文件位于SD卡上,请尝试:
File pa = new File(Environment.getExternalStorageDirectory() + "/data/misc/bluetooth/dynamic_auto_pairing.conf");
还尝试添加:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在清单文件中的<application></application>
之外。
修改强>
如果文件位于内部存储器中:您的应用程序只能从内部存储器中的特殊文件夹中读取。该文件夹的路径返回:
getFilesDir()。getAbsolutePath()
所以把文件放在那里并用openFileInput()
阅读。
更多信息: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
答案 1 :(得分:0)
来自File
的文档...
public File(String dirPath,String name)
使用指定的目录路径和文件名构造一个新文件,在两者之间放置一个路径分隔符。
在您使用的代码中......
File pa = new File("/data/misc/bluetooth/","dynamic_auto_pairing.conf");
...并且由于您的dirPath
以分隔符"/data/misc/bluetooth/"
结尾,因此会产生两个分隔符。换句话说,有效路径将是......
/data/misc/bluetooth//dynamic_auto_pairing.conf
请注意'bluetooth`之后的//
答案 2 :(得分:0)
如果您使用的是android 6.0或更高版本。您必须请求代码权限。