2011-01-12 3 views
2

전화기에 android.intent.action.SEND과 같은 의도로 선택된 기본 응용 프로그램이 있음을 감지하는 방법이 있습니까?Android 의도 기본값 - 감지 및 삭제

코드를 통해 기본 응용 프로그램을 지울 수있는 방법이 있습니까?

기본값을 제거하거나 적어도 수동으로 검색하는 방법을 보여줄 수있는 옵션을 사용자에게 제공하고 싶습니다.

답변

5

PackageManager을 살펴보십시오. 이를 통해 resolveActivity (intent)로 인 텐트를 처리하는 방법을 결정할 수 있습니다. 환경 설정을 지우는 방법 (clearPackagePreferredActivities)은 자신의 패키지에서만 작동하는 것처럼 보입니다.

+0

옳은 길을 걷고있는 것처럼 보입니다. 그러나 거기에는 많은 것이 있습니다. 나는 집에 갈 때 이것을 조사해야 할 것이다. 감사. – user432209

+0

음,이 방법을 사용하여 기본 활동이 부족하다는 것을 감지 할 수있었습니다. 기본적으로 선택하지 않은 경우 기본적으로 "com.android.internal.app.ResolverActivity"가 표시됩니다. 그래서 효과가 있었지만 문자열로 비교를해야했습니다. 문자열이 확실하지는 않습니다. 이름이 바뀌면 유망한 방법이 될 수 있습니다. 감사! – user432209

+0

@ user432209, 당신은'resolveActivity (intent, MATCH_DEFAULT_ONLY)'문자열 비교를 피하기 위해 사용할 수 있다고 생각합니다. – beetstra

3

사용 기본값의 2 단계 감지 :

PackageManager.queryIntentActivities가 의도, PackageManager.resolveActivity에 대한 모든 활동을 얻기가 해결하세요.

해결 된 항목이 queryIntentActivities에 의해 반환 된 목록에 있으면 "사용 완료 작업"대화 상자가 없어 "기본"작업이 설정되었습니다.