2011-06-17 13 views
4

アプリケーションをアンインストールするための唯一の方法は、インテント(as described here)を送信することですが、これによりユーザーがアンインストールを確認するためのアクティビティが開きます。ユーザーの介入なしに自分のAndroidアプリケーションをアンインストールするにはどうすればよいですか?

他のアプリケーションは、(ユーザーがOEMであることを示すDELETE_PACKAGES権限を持っていない限り)ユーザーの介入なしにアンインストールできないという事実に気付いています。

しかし、ユーザからの指示なしに、自分のアプリケーションを自分自身のアンインストールする方法はありますか?

答えて

5

deletePackageという名前の隠し機能があります(これは反射経由で呼び出すことができます)。しかし、それにはandroid.permission.DELETE_PACKAGESの許可が必要です。あなたがアプリの所有者であるかどうかは関係ありませんが、この許可を与えなければなりません。また、この許可はサードパーティのアプリには与えられません。

基本的に、アプリケーションをアンインストールすることはできません。これは、ユーザーがアプリケーションのインストールやアンインストールなどの重要なイベントを制御する必要があるため、実際には意味があります。ユーザーが市場からアプリをインストールしただけで、それが見つからない場合(または同様のシナリオ)、ユーザーの不満を想像してください。

アプリケーションの機能を無効にして、適切なメッセージを表示するだけです。これははるかにユーザーフレンドリーになります。

0

アプリがデバイスの所有者として設定されている場合、アプリのインストールとアンインストールはサイレントに実行できます。

デバイスオーナーはアンドロイド5.0以降から導入されました。 6.0以降のサイレントインストール機能が追加されました。 andorid源から

if ((mPm.checkUidPermission(android.Manifest.permission.INSTALL_PACKAGES, installerUid) 
     == PackageManager.PERMISSION_GRANTED) 
     || (installerUid == Process.ROOT_UID) 
     || mIsInstallerDeviceOwner) { 
    mPermissionsAccepted = true; 
} else { 
    mPermissionsAccepted = false; 
} 

この権限は根ざしユーザ、システムアプリケーションとデバイスの所有者に与えられます。

関連する問題