卸载应用程序的隐含意图?

ben*_*eel 23 android uninstall android-intent

我试图让onclicklistener调用意图卸载应用程序,让意图从应用程序设置调用默认的"卸载应用程序"活动.我在这里 发现我可以使用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);
Run Code Online (Sandbox Code Playgroud)

但语法错了.已经尝试了许多不同的方式来调用它,并且有点卡住了.不知道怎么称呼这个.谢谢你的帮助.

Kur*_*aum 51

首先,请注意ACTION_UNINSTALL_PACKAGE仅适用于android-14(即Ice Cream Sandwich,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);
          }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你希望能够做到这一点在Android平台上的所有版本,只是改变了从意向Intent.ACTION_UNINSTALL_PACKAGEIntent.ACTION_DELETE像@ goto10一样.

  • 如果您在清单文件 `<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />` 中添加了权限,它就可以工作 (4认同)

got*_*o10 19

请尝试ACTION_DELETE.这就是这个例子所暗示的.

编辑:我自己测试了这个并且效果很好.