매니페스트 파일에 설명 된 '타사'응용 프로그램의 모든 활동을 가져올 수 있어야한다고 생각합니다. 방법을 알 수 없습니다. 예를 들어응용 프로그램에서 공개하는 모든 활동을 나열하는 방법은 무엇입니까?
: 사전에
List<Activity> aList = packManager.getActivitiesForPackage("package.name");
감사합니다!
매니페스트 파일에 설명 된 '타사'응용 프로그램의 모든 활동을 가져올 수 있어야한다고 생각합니다. 방법을 알 수 없습니다. 예를 들어응용 프로그램에서 공개하는 모든 활동을 나열하는 방법은 무엇입니까?
: 사전에
List<Activity> aList = packManager.getActivitiesForPackage("package.name");
감사합니다!
GET_ACTIVITIES
플래그를 사용하여 PackageManager의 getPackageArchiveInfo()
을 사용하여 수행 할 수 있어야합니다. 나는 그것을 시도하지 않고있다
고마워 해답!
는 나도 응용 프로그램에서 모든 활동을 나열하기위한 솔루션, 아니지만 가장 우아한 ...
//the method gets all activities for an application
private void getAppActivities() {
PackageManager pManager = getPackageManager();
Intent startIntent = setStartIntent();
List<ResolveInfo> apps = pManager.queryIntentActivities(startIntent, 0);
int count = apps.size();
for (int i = 0; i < count; i++) {
ResolveInfo info = apps.get(i);
String packageName = info.activityInfo.packageName;
Intent intent = new Intent();
intent.setPackage(packageName);
//activities holds the activities defined in the package
List<ResolveInfo> activities = pManager.queryIntentActivities(intent, 0);
}
}
private void getActivityList() throws NameNotFoundException {
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager pm = this.getPackageManager();
PackageInfo info = pm.getPackageInfo("com.packagename", PackageManager.GET_ACTIVITIES);
ApplicationInfo test = info.applicationInfo;
ActivityInfo[] list = info.activities;
}
어디서 의도를 사용합니까? @easycheese – Tiger98
를 응용 프로그램 컨텍스트 다음이를 사용하는 경우를 발견 한 것 같아요 :
private static void listAllActivities(Context context) {
PackageManager pManager = context.getPackageManager();
String packageName = context.getApplicationContext().getPackageName();
try {
ActivityInfo[] list = pManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES).activities;
for (ActivityInfo activityInfo : list) {
Log.d(TAG, "ActivityInfo = " + activityInfo.name);
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
이 setStartIntent()는 무엇입니까? – RejoylinLokeshwaran