Android 앱이 있습니다. 하나는 무료 '리더'앱이고 다른 하나는 자산의 하위 디렉토리에 텍스트 파일이있는 '데이터'앱에 대한 대가로 지불됩니다. 이것은 잘 작동되었지만 구글 플레이를 사용하여 젤리에 다운로드 응용 프로그램이 작동하지 않습니다Jelly Bean의 다른 Android 앱에 액세스하기
Intent myIntent = new Intent("myintent");
List<ResolveInfo> dataPacks = packageManager.queryIntentActivities(myIntent, 0);
String packageName = dataPacks.get(0).activityInfo.packageName
Resources res = packageManager.getResourcesForApplication(packageName);
AssetManager assets = res.getAssets();
String[] dataFiles = assets.list("Data");
(데이터 파일을 비어) :
독자의 응용 프로그램은 데이터 응용 프로그램의 텍스트 파일에 액세스하려면 다음 코드를 사용합니다. 앱이 이메일에서 직접 설치되는 경우 문제가되지 않으므로 내 문제가 Google Play의 최근 보안 변경 사항과 관련이 있다고 의심됩니다. 그러나 이것들은 아직 풀리지 않았지만 여전히 문제가 있습니다.
누가 잘못 될지에 대해 밝히는 사람이 있습니까? (불행히도 나는 젤리 빈 장치가 없다)
또는 누군가가 데이터 애플 리케이션의 txt 파일에 액세스하기위한 더 나은 메커니즘을 제안 할 수 있습니까?
감사합니다.
어제를 확인했습니다. 예상대로 애셋 (/ res/asset)은 APK의 비공개 부분에 패키지되어 있으므로 다른 앱에서 직접 액세스 할 수 없습니다. 에뮬레이터에서도 이것을 테스트 할 수 있습니다. '-l'(forward lock) 옵션을 사용하여 설치해야합니다 :'adb install -l myapp.apk ' –
감사합니다. Nik. 대신 ContentProvider를 사용하도록 코드를 다시 작성했습니다. 그리고 그것은 나를 위해 일하고있다. .. Havent는 아직 야생으로 풀어 놓고, 그것이 나의 최초의 문제를 고치는 지에 관해 알 기회를 가지고 있었다. –