서비스를 종료할 때처럼 이미 설치된 앱을 스스로 삭제해야할 때가 있을 것이다. 마음 같아서는 사용자 모르게 조용히 삭제해서 추후에 발생할 문제를 미연에 방지하고 싶을 것이다. 안드로이드 플랫폼에서 방법이 없는 것은 아니지만 플랫폼 소유자가 사용할 수 있게 주어진 재량으로, 서드파티에게 제공되는 방법은 없다.
대신에 사용자에게 앱을 삭제하겠냐는 다이얼로그를 띄운 후 사용자가 동의한다면 삭제할 수가 있다. 아래의 코드를 참조하면 되고, 추가로 추가해야할 <uses-permission> 같은 것은 없다.
Intent intent = new Intent( Intent.ACTION_DELETE ); intent.setData( Uri.parse( "package:" + this.getPackageName() )); startActivity(intent);
서드파티 앱은 위 방법을 사용하면 스스로를 삭제할 수 있지만, 시스템 앱이라면 최초 상태(핸드폰 바이너리 시 포함된 버전)로 돌아간다.
간단히 말해, 어플리케이션 매니저의 우측 상단에 위치한 버튼의 역할을 대신하는 코드이다. 서드파티 앱이라면 “삭제(Uninstall)” 버튼을, 시스템 앱이라면 “업데이트 삭제(Uninstall updates)”로 동작한다.
참조