2012-01-03 2 views
8

apk가 SD 카드에 저장되어 있는지 여부를 감지하는 방법이 있습니까? 어떻게?apk가 SD 카드에 저장되어 있는지 여부를 감지하는 방법이 있습니까?

+0

+1을위한 질문. 하지만 궁금해 할 필요가 응용 프로그램이 sdcard 또는 전화에 설치되어 있는지 여부? –

+0

아니요, 앱 설치 여부를 감지해야합니다 (SD 카드에서만) – user1074896

+0

이 질문은 다음 URL의 중복입니다 : http://stackoverflow.com/questions/4004650/android-2-2-how-do- i-detect-i-am-installed-the-sdcard-or-not 후자의 대답이 API 레벨 8 이상에만 해당되는 경우는 예외입니다. 링크 된 페이지는 원하는 특정 목적을위한 FLAG_EXTERNAL_STORAGE 플래그를 사용하여 제안합니다. 이 플래그는 API 레벨 8에서 사용할 수있게되었습니다. – Carl

답변

0

예 ... 당신은 같은를 검색 할 수 있습니다 ... 안드로이드 마켓에서 다운로드

애플 리케이션은 /데이터/(안 SD 카드) 응용 프로그램에 저장됩니다. 기본 시스템 응용 프로그램 /시스템

그러나/응용 프로그램에 저장되어, 뿌리 전화는 /SDCARD/백업/응용 프로그램에서 응용 프로그램을 저장할 수 있습니다

+1

어떻게 감지 할 수 있습니까? –

+0

SD 카드에 설치하려는 경우 앱이 매니페스트에 설정할 수있는 플래그가 다소 있습니다. – Anders

+0

시장의 모든 앱이 기본적으로 휴대 전화 메모리에 설치됩니다. 장치를 뿌리 뽑기 전에 SD 카드로 옮길 방법이 없습니다. ** Apps2SD **를 사용하면 앱을 내부 메모리에서 루팅 된 기기의 SD 카드로 옮길 수 있습니다. 그리고 위에서 언급 한 것처럼 getApplicationInfo(). sourceDir을 사용하여 위치를 감지 할 수 있습니다. – Anil

0
 File f = new file(Environment.getExternalStorageDirectory()+"your apk name"); 
    sytem,out.println(""+f.exsits); 
1

허용되는 대답을보다 구체적으로 작성하려면 다음을 입력하십시오. API level 7 지침 이하에있어서, 외부 저장소 대 내부에 기록 된 파일에 액세스하는 것에 관련하여 에드 :

{ //... 
    mInternalApp = context.getApplicationInfo().sourceDir.matches("^/data/app/.*"); 
    mPathInternal = context.getApplicationInfo().dataDir + "/files/"; 
    mPathExternal = Environment.getExternalStorageDirectory() + "/Android/data/" 
       + PACKAGE_NAME + "/files/"; 
} 

private File getMyFile() { 
    return (mInternalApp) ? new File(mPathInternal + INT_FILE_NAME) : 
          new File(mPathExternal + EXT_FILE_NAME); 
} 
관련 문제