2014-12-05 1 views
3

기기 정책 관리자에 대한 새로운 기능을 구현하는 BasicManagedProfile이라는 Android 데모가 있습니다.관리 프로필의 응용 프로그램을 사용할 때 패키지 정보 목록 양식 기본 계정을 얻는 방법은 무엇입니까?

이제 관리 프로필에 응용 프로그램을 적용 할 때 다른 패키지 이름을 얻는 방법에 대한 질문이 있습니다. 예를 들어, 데모에서는 크롬 및 계산기 이름 문자열을 표시하여 프레젠테이션을 만듭니다.

/** 
* Package name of calculator 
*/ 
private static final String PACKAGE_NAME_CALCULATOR = "com.android.calculator2"; 

/** 
* Package name of Chrome 
*/ 
private static final String PACKAGE_NAME_CHROME = "com.android.chrome"; 

하지만 다른 사람이 전화 걸기 및 연락처를 얻는 방법을 알고 싶습니다.

getInstalledPackages() 또는 queryIntentActivities()을 사용해 보았지만 실패했습니다.

는 그런데,이 같은 방법 addCrossProfileIntentFilter()를 사용

IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN); filter.addCategory(Intent.CATEGORY_LAUNCHER); 

MyActivity.deviceManager.addCrossProfileIntentFilter(MyReceiver.getComponentName(context), filter, FLAG_MANAGED_CAN_ACCESS_PARENT | FLAG_PARENT_CAN_ACCESS_MANAGED); 

그러나 queryIntentActivities() 응용 프로그램의 오른쪽 목록을 반환 할 수 없습니다. 이것에 대한 제안을 해주십시오.

답변

-1

당신은

List<ApplicationInfo> pkgAppsList = mContext.getPackageManager() 
      .getInstalledApplications(
        PackageManager.GET_META_DATA); 
for (ApplicationInfo appInfo : appsList) { 
// you can get package name by appInfo.packageName 
Log.d("Package Name",": " + appInfo.packageName); 
} 

여기 mContext는 컨텍스트를 보유 장치에있는 모든 응용 프로그램의 패키지 이름을 얻기 위해이 시도 할 수 있습니다, 당신은 직접 컨텍스트를 사용하지 않고 활동 안에 getPackageManager() 메서드를 호출 할 수 있습니다.

+0

I 너무 미안해 방법 ". 목록 packageInfoList = context.getPackageManager() getInstalledPackages (0)"과 동일 해요 :

는 I 아래 간단한 demo.The 링크를 만들어 또한 "com.google.android.dialer"와 같은 taget packagename을 포함하지 않아야합니다. – Darkmoon

1

해결책이 아니라 팁. 당신이 기본 계정에서 응용 프로그램을 포함하는 목록을 검색 할 수 있습니다 GET_UNINSTALLED_PACKAGES 플래그를 추가하여

:

mContext.getPackageManager() 
      .getInstalledApplications(
        PackageManager.GET_UNINSTALLED_PACKAGES); 

기본 계정에없는 영구 데이터와 응용 프로그램을 제거한 후에는이 메소드에 의해 반환되지 않습니다. 그래서 그것은 일의 일부입니다.

그러나이 방법은 실제로 제거 된 응용 프로그램도 반환 할 수 있습니다.

플래그 GET_UNINSTALLED_PACKAGES 설정하고, 패키지가 설치된 응용 프로그램 목록에서 발견 되지 않는 경우, 애플리케이션 정보는 설치된 어플리케이션뿐만 아니라 함께 애플리케이션을 포함 제거 애플리케이션 목록 (로부터 검색되면 데이터 디렉토리 즉, 이 DONT_DELETE_DATA 플래그가 설정된 상태로 삭제 된 응용 프로그램).

0

이 문제를 해결했습니다. 이 방법은 admin 프로파일의 데이터를 전달하는 것입니다. 나는 의도, 파일 또는 contentprovider를 사용하여 데이터를로드했습니다. . 상기 결과 https://github.com/guiyu/DevicePolicyTest.git

관련 문제