2012-01-03 18 views
8

APK'nın SD kartta saklanıp saklanmadığını tespit etmenin bir yolu var mı? nasıl?APK'nın SD kartta saklanıp saklanmadığını tespit etmenin bir yolu var mı?

+0

+1 soru için. ama merak ediyorum sdcard veya telefon yüklü app mu ihtiyacınız var? –

+0

Hayır, uygulamanın yüklü olup olmadığını tespit etmem gerekiyor (sadece SD kartta) – user1074896

+0

Bu soru bir kopyasıdır: http://stackoverflow.com/questions/4004650/android-2-2-how-do- ikinci cevap, yalnızca API 8 ve üstü ile ilgili olduğu sürece, s-kartlı-i-am-on-the-sdcard-or-not . Bağlantılı sayfa, istenen spesifik amaç için kullanılan FLAG_EXTERNAL_STORAGE bayrağını kullanmanızı önerir. Bu bayrak API seviyesi 8 – Carl

cevap

0

Evet ... Aynı algılayabilir ... Android Market'ten indirilen

uygulamalar /veri/(değil SD kart) uygulaması saklanır. varsayılan sistem uygulamaları /sistem

Ancak/app saklanır, köklü telefonlar /sdcard/yedekleri/apps uygulamaları saklayabilirsiniz

+1

'da kullanıma sunuldu ve bunu nasıl tespit edersiniz? –

+0

SD kart üzerine kurulmayı tercih ederse, manifestolarında belirleyebilecek yeni bir bayrak uygulaması var ... – Anders

+0

Pazardaki her uygulama varsayılan olarak telefon belleğine yüklenir. Cihazı köklendirmeden SD karta taşımanın bir yolu yoktur. ** Apps2SD ** sadece köklü cihazlardaki uygulamaların dahili bellekten SD karta taşınmasına yardımcı olur. Yukarıda belirtildiği gibi, getApplicationInfo(). SourceDir konumu algılamak için kullanılabilir. – Anil

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

Kabul edilen yanıtı daha somut hale getirmek için, nasıl yaptığımızın bir örneği API level 7 yönergeler veya alt göre, harici depolama vs iç yazılan dosyalara erişimini bağlamında bunu ed:

{ //... 
    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); 
} 
İlgili konular