2012-09-13 3 views
2

하루 종일이 작업을 시도하고 있지만 WRITE_EXTERNAL STORAGE PERMISSION을 부여한 후에도이 PERMISSION DENIED 오류가 발생합니다. 이제 휴대 전화에서이 프로그램을 사용해 보았습니다. 다시 동일한 허가 오류가 logcat에 있습니다. 내가 항상PERMISSION DENIED 데이터베이스를 sdcard에 복사하는 중 오류가 발생했습니다 .pl

try { 
    File sd = Environment.getExternalStorageDirectory(); 
    File data = Environment.getDataDirectory(); 

    if (sd.canWrite()) { 
     String currentDBPath = "data/com.sri.tut/databases/image_storage.db"; 
     String backupDBPath = "image_storage.db"; 
     File currentDB = new File(data, currentDBPath); 
     File backupDB = new File(sd, backupDBPath); 

     if (currentDB.exists()) { 
      FileChannel src = new FileInputStream(currentDB).getChannel(); 
      FileChannel dst = new FileOutputStream(backupDB).getChannel(); 
      dst.transferFrom(src, 0, src.size()); 
      src.close(); 
      dst.close(); 
     } 
    } 
} catch (Exception e) { 
} 

이 내 로그 캣의 출력을 sdcard에 복사 할 데이터베이스의 일부 tuorials 나를 fails.Guide이 website.It에서 사용할 수 많은 코드로했습니다.

09-14 08:36:07.663: ERROR/Movedb(12336): Error in  Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB  (Permission denied) 
    09-14 08:36:09.413: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:09.963: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:10.203: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:10.654: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:10.854: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:11.083: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:11.283: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:11.683: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:11.934: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:12.224: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:12.463: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:12.734: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:13.053: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:13.413: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:13.694: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:13.914: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:14.303: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:14.563: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:36:14.804: ERROR/Movedb(12336): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:37:42.253: WARN/PackageManager(67): Mounting container com.sri.copydata-1 
    09-14 08:37:45.634: WARN/InputManagerService(67): Got RemoteException sending setActive(false) notification to pid 12336 uid 10053 




    09-14 08:37:52.463: WARN/PackageManager(67): Code path for pkg : com.sri.copydata changing from /mnt/asec/com.sri.copydata-2/pkg.apk to /mnt/asec/com.sri.copydata-1/pkg.apk 
    09-14 08:37:52.463: WARN/PackageManager(67): Resource path for pkg : com.sri.copydata changing from /mnt/asec/com.sri.copydata-2/pkg.apk to /mnt/asec/com.sri.copydata-1/pkg.apk 
    09-14 08:38:00.773: WARN/RecognitionManagerService(67): no available voice recognition services found 
    09-14 08:42:05.613: WARN/PackageManager(67): Mounting container com.sri.copydata-2 
    09-14 08:42:11.294: WARN/InputManagerService(67): Got RemoteException sending setActive(false) notification to pid 13273 uid 10053 
    09-14 08:42:20.063: WARN/PackageManager(67): Code path for pkg : com.sri.copydata changing from /mnt/asec/com.sri.copydata-1/pkg.apk to /mnt/asec/com.sri.copydata-2/pkg.apk 
    09-14 08:42:20.063: WARN/PackageManager(67): Resource path for pkg : com.sri.copydata changing from /mnt/asec/com.sri.copydata-1/pkg.apk to /mnt/asec/com.sri.copydata-2/pkg.ap 
    09-14 08:42:29.033: WARN/RecognitionManagerService(67): no available voice recognition services found 
    09-14 08:42:51.374: ERROR/Movedb(14575): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
    09-14 08:43:14.043: ERROR/Movedb(14575): Error in Copyingjava.io.FileNotFoundException: /data/data/com.sri.assign/databases/AssignmentsDB (Permission denied) 
+0

logcat에서 오류 게시 –

+0

logcat에 오류가 없습니다. 내 에뮬레이터에서만이 오류가 발생합니다 –

+0

에뮬레이터로 SD 카드를 설치 했습니까? –

답변

0

로그는 기본적 이것에 의해, /data/data/com.sri.tut/databases/image_storage.db에서 데이터를 읽을 수있는 권한이 없습니다 말한다/data 디렉토리는 리눅스 시스템 디렉토리는, 자사의 사용자 및 그룹 소유자는 응용 프로그램이 아니라 '시스템'이므로 권한이 없습니다.

당신이 ADB 쉘에서 세부 사항을 볼 수 있습니다

, 당신은 다음과 같은 속성이 표시됩니다 drwxrwx--x system system 2012-09-14 08:30 data

+0

cp /data/data/com.sri.tut/databases/image_storage.db/mnt/sdcard이 명령을 terminal.it에서 사용하면 데이터베이스가 작동합니다. 파일이 내 sdcard에 복사 중입니다.하지만 내 프로그램이 작동하지 않는 이유는 무엇입니까? 우리는이 활동을 할 수있는 다른 허가를 주어야합니까? –

+0

미안하지만, 안드로이드 4.1의 에뮬레이터에서 코드를 테스트 한 결과 제대로 작동하고 sdcard에 백업 db가 표시됩니다. – Longerian

+0

하지만 로그에 따르면 /data/data/com.sri.assign/databases/AssignmentsDB 파일이 존재하지 않는다고 말하면 파일과 코드를 확인할 수 있습니까? 왜냐하면 코드에서 image_storage.db를 백업하려고하기 때문입니다. – Longerian

1

당신의 PC에 장치를 연결하여 사용하는 경우

copy files to/from computer etc... 

당신은에 액세스 할 수 없습니다 SD 카드에 씁니다.

PC에서 연결을 해제하고 다시 시도하거나 사본을 사용하지 않도록 설정하십시오.