2014-06-17 1 views
0

내가 다음 코드 조각 사용자 에 의해 설치된 시스템 응용 프로그램 및 응용 프로그램을 구별하기 위해 노력하고있어 : 반대로Android - Whatsapp가 사용자가 설치 한 응용 프로그램으로 보이지 않는 이유는 무엇입니까?

06-17 15:19:42.639 14822-14822/it.example.myapplication.app I/TESTAPPSYSTEM WhatsApp 

:

public void getInstalledApps() { 
    int flags = PackageManager.GET_META_DATA | 
      PackageManager.GET_SHARED_LIBRARY_FILES | 
      PackageManager.GET_UNINSTALLED_PACKAGES; 
    PackageManager pm = context.getPackageManager(); 
    List<ApplicationInfo> applications = pm.getInstalledApplications(flags); 

    for(ApplicationInfo appInfo : applications) { 
     if((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) { 
      // System application 
      Log.i("TESTAPPSYSTEM", pm.getApplicationLabel(appInfo).toString()); 
     } else { 
      // Installed by user 
      Log.i("TESTAPPUSER", pm.getApplicationLabel(appInfo).toString()); 
     } 
    } 
} 

을하지만 안드로이드 스튜디오의 콘솔에서 봤어요 Whatsapp는 사용자가 설치 한 응용 프로그램이 아닌 시스템 응용 프로그램으로 간주됩니다 (예 : 전보).

+2

WhatsApp는 장치에 사전 설치 되었습니까? – CommonsWare

+0

이제 알게되었습니다 : 마지막으로 설치 한 ROM에 Whatsapp가 포함되었습니다. ROM의 기능을 확인하고 거기에 Whatsapp가 있는지 확인했습니다. 그러나 설치된 또는 포함 된 응용 프로그램이 ROM에 포함되어있는 경우이를 어떻게 나타낼 수 있습니까? – elmazzun

+1

무슨 소리 야? 정의에 따르면, ROM에 포함 된 응용 프로그램은 시스템 응용 프로그램입니다. –

답변

0

Whatsapp는 제조업체의 Android 운영체제 또는 휴대 전화에 적용한 ROM에 사전 설치되어 있지만 변경할 수는 없지만 루트 폰이있는 경우 WhatsApp을 제거하고 설치하십시오 사용자가 시스템 응용 프로그램이 아닌 사용자 응용 프로그램으로 설치되도록 재생 저장소에서 가져옵니다. 게다가 거기에는 가까운 시스템 애플 리케이션이있다. 비록 내가 믿기 만하면이 작업을 수행하기 위해서는 루트 액세스 권한이 있어야 할 것이다.

관련 문제