Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android sdcard讀寫權限問題之一

Android sdcard讀寫權限問題之一

編輯:關於Android編程

博主在剛剛在學習過程中發現了一個關於android往sdcard讀寫的問題,

配置了該配置的提示無讀寫權限。

在AndroidManifest.xml文件中配置清單如下


package="com.example.custom"
android:versionCode="1"
android:versionName="1.0" >


android:minSdkVersion="8"
android:targetSdkVersion="19" />
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name="custom_content_provider.RegionContentProvider"
android:authorities="mobile.android.wang.hao.regioncontent" />









往sdcard寫文件的代碼如下

//打開數據庫
private SQLiteDatabase openDatabase(){
Log.d("error", "openDatabase");
InputStream is = null;
FileOutputStream fos = null;
try{

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

//獲取文件目錄
String dbFileName = Environment.getExternalStorageDirectory()+"/region.db";
Log.d("error", dbFileName);
if(!(new File(dbFileName).exists())){ //文件不存在copy
is = getContext().getResources().getAssets().open("region.db");
fos = new FileOutputStream(dbFileName);
byte[] buffer = new byte[8192];
int count = 0;
while((count=is.read(buffer))>0){
fos.write(buffer,0,count);
}
}
}else{
Log.d("error", "無讀寫權限"+Environment.getExternalStorageDirectory()+"/region.db");
}
}catch(Exception ex){
Log.d("error", ex.getMessage());
}finally{
// 關閉流 略...
}
return null;


然後運行的時候提示無權限訪問該sdcard路徑,但是我們配置的也配置了,網上有說是sdk版本的問題,

說2.2以後的版本不能用FileOutputStream 創建文件,搞了半天,還是一樣,最後我用手機測試了一下,

發現文件創建成功,突然,我想了一下,是否有sdcard呢?


\ \

d---------,問題居然出在這裡,難道是虛擬機沒有裝載sdcard,緊接著,我重啟了一把,OK搞定



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved