2013-08-10 32 views
10

Tôi đang sử dụng đoạn mã sau để bắt đầu cài đặt tôi muốn để khởi động các hoạt động thiết lập được bắt đầu bởi ins androidBắt đầu Hoạt động Android với tên lớp

PackageList allowedAppsPackageName=CallHelper.Ds.getPackageList(); 
      PackageManager manager = CallDetectService.packageManager; 
      Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
      mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

     final List<ResolveInfo> apps = manager.queryIntentActivities(mainIntent, 0); 
     Collections.sort(apps, new ResolveInfo.DisplayNameComparator(manager)); 
     final int count = apps.size(); 
     ResolveInfo info=new ResolveInfo();; 
     GridViewAppList.clear(); 

       for (int i = 0; i < count; i++) 
       { 

         info= apps.get(i); 
         if(info.activityInfo.applicationInfo.packageName.contains("setting")) 
          break; 

       } 
       ApplicationInfo application = new ApplicationInfo(); 

       application.title = info.loadLabel(manager); 
       application.setActivity(new ComponentName(
         packageName, 
         info.activityInfo.name), 
         Intent.FLAG_ACTIVITY_NEW_TASK 
         | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
       application.icon = info.activityInfo.loadIcon(manager); 
       application.packagename=packageName; 
       Log.i("PKG", application.packagename+" "+packageName+" "+info.activityInfo.name); 
       GridViewAppList.add(application); 

Trả lời

21

Bạn có thể sử dụng đoạn mã này để mở Settings Hoạt động:

Intent intent=new Intent(); 
intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.Settings")); 
startActivity(intent); 

Nếu bạn biết bạn phải mở Hoạt động nào, bạn có thể tìm thấy tên và tên gói của nó như tôi đã đề cập here.

+0

Đây là k nếu tôi biết tên lớp nhưng những gì nếu tôi không biết? – Tushar

+0

@Tushar Tôi đã chỉnh sửa câu trả lời, vui lòng xem lại. – hasanghaforian

0

Có nhiều hằng số hành động trong lớp Settings có thể được sử dụng để tạo mục đích sẽ bắt đầu hoạt động cho Cài đặt phụ được cung cấp hoặc chỉ cần khởi chạy ứng dụng Cài đặt tùy thuộc vào hành động.

Ví dụ:

intent = new Intent(Settings.ACTION_SETTINGS); // ACTION_SETTINGS will start the Settings app 

intent = new Intent(Settings.ACTION_WIFI_SETTINGS); // ACTION_WIFI_SETTINGS will show the WiFi settings 
Các vấn đề liên quan