2010-09-14 13 views
11

ortayaalınıyor Paketi dize ... Bu basit olmalıdır ama bu konuda herhangi bir bilgi bulamıyorum

Ben sadece android manifest'te paket değerini okumak istiyorum

...

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="THIS" 

nedeni basit context.getResources(). GetIdentifier (...) ve paketine ihtiyacım var.

Bu kod diğer uygulamalarda yeniden kullanacağından, bunu dışa aktardığımda, bunu kanıtlamak istiyorum ve bu nedenle her seferinde değeri değiştirmek zorunda kalmam.

kimse bunu nasıl yapacağını biliyor mu? "ana" Activity sınıfından itibaren

cevap

17

, sadece() getPackageName çağırabilir. uygulama sürümüne bir TextView ayarlama http://developer.android.com/reference/android/content/pm/PackageInfo.html

Örnek: Eğer Manifest'ten ek veri gerek bir şey olursa, sen PackageInfo sınıfını kullanabilirsiniz

try { 
     PackageManager pm = getPackageManager(); 
     PackageInfo packageInfo = pm.getPackageInfo(this.getPackageName(), 0); 
     TextView version = (TextView) findViewById(R.id.version); 
     version.setText(packageInfo.versionName); 
    } catch (NameNotFoundException e) {} 
+1

bu dikişlerin tamamen doğru olmamasına, yani packInfo.versionName paket özniteliğinde değil de gradle dosyasında tanımlı applicationId değerini döndürdüğü için çalışacaktır. senin tezin. Çoğu durumda olduğu gibi aynı şekilde çalışır, ancak uygulamalarınızı değiştiren buildFlavors ile çalışırken bu artık çalışmayacaktır. Bunun için herhangi bir çözüm bulmuyorum, ancak paket özniteliğine "R" sınıfı üzerinden erişiyorum. Yani, paket özniteliği, yalnızca 'R' sınıfı için paket adını etkiler ve normal sınıf paketlerinizin ne olduğunu uygular. –

2

: Bir Etkinlik kapsamında

String package = this.getClass().getPackage().getName(); 
+6

Onun bu yalnızca çalışacağını dikkati çekiyor senin Ana faaliyet, manifest paketiyle aynı adı taşıyan bir paket içinde (ve örneğin bir alt paket değil) –

+0

sınıfının paketinde belirtilen paketle eşleşmemesi gerekir, bu yüzden doğru değildir, Bu paketler, –

İlgili konular