10

Tôi muốn nhận tất cả các ứng dụng mặc định trong Android L. Tôi đã sử dụng mã dưới đây nhưng chúng cung cấp cho tôi giải pháp sai. Hãy xem mã của tôi trước tiênDanh sách các ứng dụng mặc định hiển thị sai trong Android L

private void getMyAppLauncherDefault() { 
    final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN); 
    filter.addCategory(Intent.CATEGORY_HOME); 
    List<IntentFilter> filters = new ArrayList<IntentFilter>(); 
    filters.add(filter); 
    List<ComponentName> activities = new ArrayList<ComponentName>(); 
    final PackageManager packageManager = (PackageManager) getPackageManager(); 

    packageManager.getPreferredActivities(filters, activities, null); 
    for (ComponentName activity : activities) { 

     Log.d(TAG,"======packet default:==="+activity.getPackageName()); 
    } 
} 

Và đây là nhật ký. Nhật ký hiển thị kết quả sai giữa com.google.android.googlequicksearchboxcom.vlingo.midas. Cả hai ứng dụng này đều là Ứng dụng thoại nhưng tôi thiết lập mặc định là com.google.android.googlequicksearchbox. Tôi không biết tại sao nhật ký hiển thị com.vlingo.midas. Làm thế nào tôi có thể sửa chữa nó? Cảm ơn

16:02:44.817 /com.exam D/Sample: ======packet default:===com.sec.android.gallery3d 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.vlingo.midas 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.sbrowser 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.gallery3d 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.launcher 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.sbrowser 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.google.android.googlequicksearchbox 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.sbrowser 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.gallery3d 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms 
16:02:44.827 /com.exam D/Sample: ======packet default:===com.google.android.apps.plus 

cập nhật: Có tên ứng dụng mặc định enter image description here

+0

Có khả năng 'com.vlingo.midas' hỗ trợ một bộ lọc bổ sung mà bộ lọc hiển thị. In bộ lọc tương ứng với tên gói để kiểm tra điều này. – F43nd1r

+0

@ F43nd1r: Làm cách nào để in? Kích thước 'filter' chỉ 1, trong khi' filter' size là 4. Nhưng tôi không thể in tên bộ lọc – Jame

+0

có thể là com.vlingo.midas là mặc định cho mục đích/ứng dụng khác nhau. –

Trả lời

2

Để kiểm tra xem ứng dụng của bạn được thiết lập như là "Default", sau đó hãy thử mã này:

public static boolean isMyAppDefault(Context context) { 
     final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN); 
     filter.addCategory(Intent.CATEGORY_HOME); 

     List<IntentFilter> filters = new ArrayList<IntentFilter>(); 
     filters.add(filter); 

     final String myPackageName = context.getPackageName(); 
     List<ComponentName> activities = new ArrayList<ComponentName>(); 
     final PackageManager packageManager = (PackageManager) context.getPackageManager(); 

     packageManager.getPreferredActivities(filters, activities, null); 

     for (ComponentName activity : activities) { 
      if (myPackageName.equals(activity.getPackageName())) { 
       return true; 
      } 
     } 
     return false; 
    } 
+0

@ user8430 nếu bạn gặp bất kỳ sự cố nào cho tôi biết. –

+0

Tôi nghĩ bạn và tôi có cùng nguồn từ một người nào đó. Trong giải pháp của bạn, nó tương tự như mã của tôi ở trên, chỉ cần sửa đổi một cái gì đó. Vui lòng kiểm tra giải pháp của bạn trước khi đăng. – Jame

2

Mã bạn thêm trên là hoàn toàn đúng. Nó thực hiện những gì nó có nghĩa là để.

Bây giờ bạn đã đặt com.google.android.googlequicksearchbox ứng dụng thoại làm mặc định và đó là lý do tại sao nó hiển thị trong nhật ký. Mặc dù com.vlingo.midas hiển thị có thể do được đặt làm mặc định cho một số loại danh mục khác thay vì giọng nói.

+0

Bạn có thể chứng minh điều đó bằng cách nào? Tôi không nghĩ vậy. Tôi kiểm tra tất cả – Jame

+0

@ user8430 Tôi sẽ cần phải thử nó để chứng minh điều đó. Tôi sẽ thử nó và cho bạn biết –

+0

Bạn có tìm thấy giải pháp không. Tôi vẫn mong được thử nghiệm của bạn – Jame

Các vấn đề liên quan