Có một cách dễ dàng hơn các câu trả lời khác không yêu cầu bạn đặt tên tài nguyên một cách rõ ràng hoặc lo lắng về các ngoại lệ với tên gói. Nó cũng hoạt động nếu bạn đã sử dụng một chuỗi trực tiếp thay vì một tài nguyên.
Cứ làm đi:
public static String getApplicationName(Context context) {
ApplicationInfo applicationInfo = context.getApplicationInfo();
int stringId = applicationInfo.labelRes;
return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);
}
Hi vọng điêu nay co ich.
Biên tập
Theo nhận xét từ Snicolas, tôi đã sửa đổi ở trên để nó không cố gắng giải quyết id nếu nó là 0. Thay vào đó, nó sử dụng, nonLocalizedLabelnhư một sự hỗ trợ. Không cần gói thử / bắt.
android:name. Nếu bạn mã hóa cứng một chuỗi, thì nó không thành công.