본문 바로가기
안드로이드

[안드로이드] 여러개의 Launcher를 설치했을 때, Default Launcher 해제하기

by 호군 2011. 9. 6.
반응형
안드로이드에서 Settings에 기본으로 설정된 Launcher를 해제하는 부분이 있습니다.
이 부분까지 코드를 타고 내려가보니 해제를 할 때, 단 한줄의 코드만으로 해결을 하고 있었습니다.

InstalledAppDetails.java
public void onClick(View v) {
        String packageName = mAppInfo.packageName;
        if(v == mUninstallButton) {
            if (mUpdatedSysApp) {
                showDialogInner(DLG_FACTORY_RESET);
            } else {
                uninstallPkg(packageName);
            }
        } else if(v == mActivitiesButton) {
            mPm.clearPackagePreferredActivities(packageName);
            mActivitiesButton.setEnabled(false);
        } else if(v == mClearDataButton) {
            if (mAppInfo.manageSpaceActivityName != null) {
                Intent intent = new Intent(Intent.ACTION_DEFAULT);
                intent.setClassName(mAppInfo.packageName, mAppInfo.manageSpaceActivityName);
                startActivityForResult(intent, -1);
            } else {
                showDialogInner(DLG_CLEAR_DATA);
            }
        } 
  .............
}

mPm은 PackageManager의 인스턴스입니다. clearPackagePreferredActivities() 메소드에 packageName을 넘겨주면 해제를 해주는 것 같네요.
아직 소스만 따라가보고, 동작은 확인해보지 않았습니다.
만약 이글을 읽은 사람이 있다면, 테스트 결과를 댓글로 달아주었으면 합니다.
반응형