Ada cara yang lebih mudah daripada jawaban lain yang tidak mengharuskan Anda menamai sumber daya secara eksplisit atau mengkhawatirkan pengecualian dengan nama paket. Ini juga berfungsi jika Anda telah menggunakan string secara langsung, bukan sumber daya.
Kerjakan saja:
public static String getApplicationName(Context context) {
ApplicationInfo applicationInfo = context.getApplicationInfo();
int stringId = applicationInfo.labelRes;
return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);
}
Semoga ini membantu.
Sunting
Mengingat komentar dari Snicolas, saya telah memodifikasi yang di atas sehingga tidak mencoba untuk menyelesaikan id jika itu 0. Sebagai gantinya digunakan, nonLocalizedLabel
sebagai backoff. Tidak perlu membungkus dalam coba / tangkap.
android:name
. Jika Anda melakukan hardcode string, maka gagal.try ... catch
.Jika tidak disebutkan dalam strings.xml / hardcoded di AndroidManifest.xml karena alasan apa pun seperti android: label = "MyApp"
Atau jika Anda mengetahui ID sumber daya String maka Anda bisa langsung mendapatkannya melalui
sumber
sumber
CharSequence
. Saya pikir Anda perlu.toString()
di akhir.Dari penggunaan Konteks apa pun:
sumber
Jika Anda tahu nama Paket, gunakan cuplikan berikut
sumber
Jika Anda hanya membutuhkan nama aplikasi, bukan nama paketnya, maka tulis saja kode ini.
sumber
Di Kotlin , gunakan kode berikut untuk mendapatkan Nama Aplikasi:
sumber
Di Kotlin sederhana:
sumber
Dapatkan Nama Aplikasi Menggunakan RunningAppProcessInfo sebagai:
sumber
Oke guys, opsi ramping lainnya adalah
Application.Context.ApplicationInfo.NonLocalizedLabel
diverifikasi untuk label android hard code pada elemen aplikasi.
<application android:label="Big App"></application>
Referensi: http://developer.android.com/reference/android/content/pm/PackageItemInfo.html#nonLocalizedLabel
sumber
Komentar sumber yang ditambahkan
NonLocalizedLabel
mengarahkan kita sekarang ke:sumber
Sudahkah Anda mencoba menggunakan
PackageManager#getActivityInfo()
metode ini? Akan ada bidang yang harus berisi nama aplikasi.Lihat jawaban untuk pertanyaan yang sangat mirip di sini .
sumber