2014-05-15 11 views
1

이 내 코드 startActivity를 호출 할 때Intent.ACTION_DELETE를 사용할 때 사용자가 앱을 실제로 제거했는지 어떻게 알 수 있습니까?

Intent intent = new Intent(Intent.ACTION_DELETE); 
intent.setData(Uri.parse("package:" + theApp.getAppOpen())); 
startActivity(intent); 

이며, 기본 프롬프트는 그 응용 프로그램을 제거 할 것인지 여부를 사용자에게 물어 온다.

사용자가 앱을 제거하기 위해 "ok"라고 말하면 어떻게 알 수 있습니까? 내 앱이 제거되지 않는다고 가정합니다.

답변

1

당신은 두 가지 옵션이 있습니다, 당신은 두 가지의 조합을 사용할 수 있습니다 여부를 확인하기 위해

1) 의도의 data을 검사 할 수 있습니다하는 ACTION_PACKAGE_REMOVED에 대한 BroadcastReceiver, 한 번 해고 등록을하여 패키지가 제거되었습니다. 아마도 알람을 5 분 후에 설정하여 시간 제한을 추가하는 것이 현명 할 수 있습니다.

2) 사용자가 제거를 제거하거나 제거를 취소하면 작업이 다시 시작됩니다. 관심 패키지가 onResume()에 여전히 존재하는지 확인하려면 PackageManager.getPackageInfo() 또는 이와 유사한 것을 사용하십시오. 참고 : 사용자가 앱으로 돌아 오지 않을 수도 있습니다.이 경우 시간 초과/알람 권장 사항이 중요하게됩니다.

+0

아. 고맙습니다. 두 번째 방법은 제가 관심을 갖고 있었던 것이 었습니다. 그러나 "타임 아웃/알람 권장"은 무엇을 의미합니까? –

+0

첫 번째 옵션의 마지막 줄을 참조하고있었습니다. 사용자가 돌아 오지 않으면 잠시 동안 이력서가 표시되지 않을 수 있기 때문에 앱이 실제로 제거되었는지 여부를 확인하기 위해 알람을 5 분간 설정합니다. 또는 전혀 보지 못할 수도 있습니다. – 323go

2

"ACTION_UNINSTALL_PACKAGE"의도 (API 14 이상)를 사용하여 제거가 성공했는지 여부를 확인할 수 있다고 생각합니다.

문서 말 :

활동 작업 : 시작 응용 프로그램 제거 프로그램.

입력 : 데이터는 패키지 특정 URI 부분이 인 패키지 : 제거 할 패키지 이름입니다. 선택적으로 EXTRA_RETURN_RESULT를 제공 할 수 있습니다.

출력 : EXTRA_RETURN_RESULT 인 경우 설치가 성공했는지 여부를 반환합니다.

상수 값 : "android.intent.action.UNINSTALL_PACKAGE"

관련 문제