2013-07-09 3 views
3

"키오스크 모드 시작"을 시도하는 애플리케이션이 있지만 단 하나의 액티비티에서만 발생하기를 원합니다. 컨트롤 중 일부를 조작 한 후 Intent.createChooser()을 생각해 냈습니다.Android에서 기본 앱 설정 및 설정 해제

내가하려고하는 것은 Activity onCreate()이 호출되면 사용자에게 기본 홈 응용 프로그램으로 설정하도록 묻는 Intent.createChooser()을 트리거하는 것입니다. 그런 식으로 본 시작 활동이이 시나리오에서 키오스크 활동으로 곧바로 연결되도록 프로그래밍했기 때문에 홈 버튼을 "비활성화"합니다.

패스 코드를 통해 키오스크 활동이 종료되면 다시 사용자에게 기본 홈 응용 프로그램으로 내 앱을 "설정 해제"할 수 있도록 createChooser()에 전화를 걸어서 원하는대로 홈 버튼을 사용할 수 있습니다 표준.

createChooser()으로 전화하면 "기본 앱으로 설정"체크 박스가 나타나지 않습니다. 어떻게 보이게합니까?

이것은 createChooser()를 호출 내 코드입니다 :

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_HOME); 
intent.addCategory(Intent.CATEGORY_DEFAULT); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

startActivity(Intent.createChooser(intent, "Set as default to enable Kiosk Mode")); 

내가 게시물 내가 startActivityForResult()를 사용해야합니다 말을 본 적이 그리고 난 대체 시도 내 다음과 startActivity() :

startActivityForResult(intent, 1); 

을하지만이 선택기 화면이 나타나지 않고 내 기본 응용 프로그램을 호출했습니다.

답변

4

당신이 선호하는 실행 프로그램을 재설정 How to reset default launcher/home screen replacement?에 따르면

getPackageManager().clearPackagePreferredActivities(getPackageName()); 

을 시도했다. 어쩌면 홈 버튼에서도 작동 할 수 있습니다.

다른 방법으로 살펴 보셨습니까? Clearing and setting the default home application?

+0

감사합니다 잭! 첫 번째 링크는 정확히 내가 필요로하는 것이었고, 기본 런처 앱을 재설정하는 아주 깔끔한 해결 방법을 제공했습니다. – Wakka02