직접 가능하지 않으며 Android 개발자는 사용자의 취향을 변경하는 앱을 원하지 않는다고 말했습니다. 그러나 Android가 이러한 환경 설정을 유지하는 방법에 기반한 해결 방법이 있습니다. 간단하게하기 위해서
<activity
android:name="MyLauncherActivity"
android:exported="true" />
<activity-alias
android:name="LauncherAlias1"
android:targetActivity="MyLauncherActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
<activity-alias
android:name="LauncherAlias2"
android:enabled="false"
android:targetActivity="MyLauncherActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
, 내가 손 작업과 관련이없는 추가 속성을 남겨 두었다 :
이 같은 매니페스트 모습합니다. 매니페스트는 다음과 같습니다 일단
어쨌든,이 같은 코드를 사용하여 기본 실행을 취소 할 수 있습니다
PackageManager pm = getPackageManager();
ComponentName cn1 = new ComponentName("com.mypackage", "com.mypackage.LauncherAlias1");
ComponentName cn2 = new ComponentName("com.mypackage", "com.mypackage.LauncherAlias2");
int dis = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
if(pm.getComponentEnabledSetting(cn1) == dis) dis = 3 - dis;
pm.setComponentEnabledSetting(cn1, dis, PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(cn2, 3 - dis, PackageManager.DONT_KILL_APP);
하나의 별칭을 활성화하고 다른 사람을 비활성화하면 변경 한 것으로 사용자의 옵션을 인식하는 안드로이드의 원인 마치 하나의 런처를 설치하고 다른 런처를 제거한 것과 같습니다. 따라서 다음에 집 버튼을 누르면 다시 선택하라는 메시지가 표시됩니다. 이 방법은 현재 실행기가 누구인지에 관계없이 작동합니다.
나는 사용자 환경 설정을 변경하는 응용 프로그램을 원하지 않는 안드로이드 개발자를 이해하지만, 약 수행 할 것이없는 기본 앱을 관리 할 수있는 중앙 장소의 부족은 – lisovaccaro
내가 오히려 동의 말도 있지만, 장치를 응원의 짧은 그것. –
나는 (흰색 배경을 테마에 추가 한) 더 많은 테스트를 수행했지만 애니메이션은 흰색 배경을 보았으므로 테마가 작동합니다 (활동이 페이드 인/페이 아웃). 왜 이런 일이 일어나는 지 전혀 모르겠습니다. – lisovaccaro