preinstaladas - desinstalar aplicaciones de fabrica android desde pc
¿Intenciones implícitas de desinstalar la aplicación? (3)
Intento que una llamada de onclicklistener intente desinstalar una aplicación haciendo que el intento llame a la actividad de "aplicación de desinstalación" predeterminada desde la configuración de las aplicaciones. He encontrado here que puedo desinstalar una aplicación usando ACTION_UNINSTALL_PACKAGE, com.packageXYXY, que parece ser lo que estoy buscando. Sin embargo, no estoy seguro de cómo llamar esto. He probado lo siguiente:
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);
pero la sintaxis es incorrecta He intentado varias formas diferentes de llamar a esto, y estoy atascado. No estoy seguro de cómo llamar esto. Gracias por tu ayuda.
En Api Demos parece que están dando el camino completo a la actividad, no solo el paquete en sí. Esto parece extraño, porque la actividad de helloactivity
no se declara en el manifiesto de ese proyecto. Entonces tal vez sea solo la ruta del paquete ...
Sin embargo, establezca el EXTRA_RETURN_RESULT
adicional en true
en su intento, luego inicie la actividad para obtener resultados y verifique el código del resultado, tal vez devuelva un código / campo extra en el intento de datos diciendo cuál es el error (Lea en la documentación para eso)
En primer lugar, tenga en cuenta que el ACTION_UNINSTALL_PACKAGE solo está disponible para android-14 (es decir, Ice Cream Sandwich, Android 4.0). Dicho esto, el siguiente código funciona para mí:
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);
}
});
}
}
Si desea poder hacer esto en todas las versiones de la plataforma de Android, simplemente cambie la intención de Intent.ACTION_UNINSTALL_PACKAGE
a Intent.ACTION_DELETE
como lo hace @ goto10.
Pruebe ACTION_DELETE en su lugar. Eso es lo que sugiere este ejemplo .
EDITAR: Acabo de probar esto yo mismo y funcionó muy bien.