2011-10-04 3 views
1

내 응용 프로그램의 일부로, 네이티브 코드 라이브러리를 캡슐화하는 Android 서비스를 만듭니다. Android 서비스는 자체 프로세스로 실행됩니다. 설치 폴더 (/ data/data/package 폴더)에서 개인 데이터에 액세스하고 개인 데이터를 쓰려면 Android 서비스의 기본 코드가 필요합니다. 그게 가능합니까? 네이티브 코드가 쓰기 액세스 오류가 발생하는 것 같습니다. 같은 라인에서 자체 프로세스에서 실행중인 Android 서비스가 앱의/data/data/<package> 폴더에 액세스 할 수 있습니까?

,이 서비스 접근이/MNT/SDCARD/안드로이드/데이터 /? 그것은 네이티브 코드 액세스 오류를 얻을 것이 보인다 "에서.

모든 확인 SD 카드 디렉토리가 도움이 될 수 있습니다

감사 에릭 두 질문에 대한

답변

2

:.. 예

서비스가 응용 프로그램, 활동 및 응용 프로그램의 다른 부분과 동일한 프로세스의 일부입니다 그것은 응용 프로그램의 페이지에 액세스 할 수 있습니다 제대로에 의해 결정 rivate 폴더 :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

당신은 아마 잘못 서비스가 나머지 다른 프로세스에서 실행한다고 가정 또한

getPackageManager().getPackageInfo("com.example.app", 0).applicationInfo.dataDir; 

은 당신이 매니페스트에 권한이있는 가정, SD 카드에 쓸 수 있습니다 앱. 그것은 여전히 ​​동일한 과정이며, 원시 코드는 차이를 만들지 않습니다.

+0

내 안드로이드 서비스가 다른 프로세스에서 실행되고 있다고 말한 이유는 매니페스트에서이를 구체화하기 때문입니다. 또한 네이티브 코드 (C/C++)에서 어떻게 액세스하겠습니까? –

+0

다른 프로세스가 가능할 것 같습니다. 액세스 권한에 영향을 줄지는 모릅니다. 그렇다면 왜 다른 프로세스에 넣을까요? –

관련 문제