アプリケーションの設定からデフォルトの「アプリのアンインストール」アクティビティをインテントに呼び出させることで、onclicklistenerにアプリをアンインストールするインテントを呼び出させようとしています。私が見つけた here ACTION_UNINSTALL_PACKAGE、com.packageXYXYを使用してアプリをアンインストールできることがわかりました。しかし、私はこれをどのように呼ぶかわかりません。私は以下を試しました:
public void onClick(DialogInterface dialog, int which) {
Uri packageURI = Uri.parse("package:com.packageName");
Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI);
startActivity(uninstallIntent);
しかし、構文は間違っています。これを呼び出すためにさまざまな方法を試してみましたが、ちょっと行き詰まっています。これを呼び出す方法がわからない。ご協力いただきありがとうございます。
まず第一に、ACTION_UNINSTALL_PACKAGEはAndroid-14(つまりアイスクリームサンドイッチ、Android 4.0))でのみ利用可能であることに注意してください。
import Android.app.Activity;
import Android.os.Bundle;
import Android.widget.TextView;
import Android.view.View;
import Android.net.Uri;
import Android.content.Intent;
public class TestActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView view = (TextView)findViewById(R.id.test_view);
view.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
Uri packageUri = Uri.parse("package:org.klnusbaum.test");
Intent uninstallIntent =
new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri);
startActivity(uninstallIntent);
}
});
}
}
Androidプラットフォームのすべてのバージョンでこれを実行できるようにしたい場合は、@ goto10のように、インテントをIntent.ACTION_UNINSTALL_PACKAGE
からIntent.ACTION_DELETE
に変更するだけです。
代わりにACTION_DELETEを試してください。それが この例 が示唆することです。
編集:私はこれを自分でテストしたところ、うまくいきました。
Api Demos では、パッケージ自体だけでなく、アクティビティへの完全なパスを提供しているようです。 helloactivity
アクティビティがそのプロジェクトのマニフェストで宣言されていないため、これは奇妙に思われます。たぶんそれは単にパッケージパスです...
ただし、追加のEXTRA_RETURN_RESULT
to true
をインテントに入れ、アクティビティの結果を開始して結果コードを確認します。データインテントにコード/追加フィールドが返され、エラーの内容が示されます(そのドキュメントをご覧ください) )