2012-04-21 1 views
0

:는 휴대 전화에 설치된 응용 프로그램에 필요한 기능의 목록을 검색하려면 내가 패키지 관리자가 내 코드에 설치된 응용 프로그램의 목록을 가져올 수 있어요

public ArrayList<InstalledAppData> importInstalledAppsData(){ 
     ArrayList<InstalledAppData> appList=new ArrayList<InstalledAppData>(); 
     PackageManager pkgManager=getApplicationContext().getPackageManager(); 
     List<ApplicationInfo> packages=getInstalledApplicationsList(pkgManager); 
     String deviceId=Util.getDeviceId(getApplicationContext()); 

     for (ApplicationInfo packageInfo : packages) { 
     String packageName=packageInfo.packageName; 
     String appName=""; 
     String appFile = packageInfo.sourceDir; 
     long installTime = new File(appFile).lastModified(); 
     String status="s"; 
     if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) { 
       appName = (String) pkgManager.getApplicationLabel(packageInfo); 
      } 
      else { 
      appName = (String) pkgManager.getApplicationLabel(packageInfo); 
     }     
     InstalledAppData data=new InstalledAppData(deviceId, packageName, appName, installTime, status); 
      appList.add(data); 


     } 
     return appList; 
    } 

가 지금은 모든 설치된 앱을 식별 할 현재 위치 서비스가 활성화 된 휴대 전화입니다. 어떻게해야합니까? 미리 알림

답변

1

어떻게하면됩니까?

수 없습니다. 안드로이드 SDK는 한 애플리케이션이 다른 애플리케이션의 LocationManager 사용을 감시 할 방법이 없습니다.

사람이 위치 업데이트를 요청하는 경우가 있지만 특정 응용 프로그램에 연결할 수 없는지 확인하려면 PASSIVE_PROVIDER에 등록 할 수 있습니다.

+0

내가 설치된 모든 응용 프로그램의 권한 목록을 가져오고 싶다면 packagemanager.getpermissions.But에서 수행 할 수 있습니다. 이제 어떤 응용 프로그램에 access_fine_location 또는 access_coarse_location 권한이 있는지 필터링하고 싶습니다. 가능한가요? –

+1

@NirupomaSahaChaiti : 설치된 응용 프로그램을 반복하고'PackageManager'에서 해당 패키지를 가져 오는'PackageInfo' 객체의'permissions' 데이터 멤버를 확인하십시오. – CommonsWare

관련 문제