Câu trả lời của RoflcoptrException là chính xác. Nhưng trong một số trường hợp, nó sẽ không cung cấp cho bạn tất cả các ứng dụng của bên thứ ba được cài đặt. ApplicationInfo
cũng có cờ FLAG_UPDATED_SYSTEM_APP
được thiết
Nếu ứng dụng này đã được cài đặt như một cập nhật cho một hệ thống tích hợp ứng dụng
Trên điện thoại thông minh ứng dụng như vậy tôi bao gồm đất bí hiểm Amazone Kindle, Adobe Reader, Slacker Radio và những người khác. Các ứng dụng này không đi kèm với điện thoại và được cài đặt từ Cửa hàng Google Play. Do đó, chúng có thể được coi là ứng dụng của bên thứ ba.
Vì vậy, bạn cũng có thể muốn kiểm tra cờ FLAG_UPDATED_SYSTEM_APP
.
final PackageManager packageManager = _context.getPackageManager();
List<ApplicationInfo> installedApplications =
packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo appInfo : installedApplications)
{
if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)
{
// IS A SYSTEM APP
}
if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0)
{
// APP WAS INSTALL AS AN UPDATE TO A BUILD-IN SYSTEM APP
}
}
Nguồn
2012-09-02 22:02:26
Bạn có ý nghĩa gì bởi bên thứ ba? Không phải từ Google? Không phải từ bạn? – RoflcoptrException
@Roflcoptr Được cài đặt trên hệ thống hoặc được cài đặt bởi người dùng. –