Неявное намерение удалить приложение?

Я пытаюсь, чтобы вызов 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); 

но синтаксис неверен. Попробовали несколько разных способов назвать это, и я застрял. Не уверен, как это назвать. Спасибо за вашу помощь.

Прежде всего, обратите внимание, что 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); } }); } } 

Если вы хотите сделать это на всех версиях платформы Android, просто измените намерение с Intent.ACTION_UNINSTALL_PACKAGE на Intent.ACTION_DELETE как @ goto10.

Вместо этого попробуйте ACTION_DELETE. Вот что предлагает этот пример .

EDIT: Я просто испытал это сам, и он отлично поработал.

В Api Demos похоже, что они дают полный путь к активности, а не только сам пакет. Это кажется странным, потому helloactivity активность helloactivity не объявляется в манифесте этого проекта. Так что, возможно, это просто путь к пакету …

Однако установите для параметра EXTRA_RETURN_RESULT значение EXTRA_RETURN_RESULT значение true , затем запустите действие для результата и проверьте код результата, возможно, он вернет поле кода / дополнительного поля в намерении данных, говоря, что такое ошибка (прочтите в документации для этого)

Interesting Posts

Как мы можем перенаправить вывод программной консоли Java на несколько файлов?

Как запустить графические программы Linux из командной строки, но отдельно от командной строки?

Есть ли способ ограничить доступ на чтение к страницам в MediaWiki?

.c vs .cc против .cpp vs .hpp vs .h vs .cxx

В чем разница между «и» в Prolog?

Вставить рисунок / таблицу в R Markdown

Rails 4: организовать модели рельсов в подпути без шаблонов имен?

В чем разница между слабой ссылкой и неизменной ссылкой?

В MySQL я могу отложить проверку ссылочной целостности до фиксации

Может ли Unity быть сделано, чтобы не вызывать синхронное исключение Exception все время?

открыть чтение xml из файла excel

Я жертва Ретийского выкупа. Есть ли решение для дешифрования моего диска?

Почему / когда __declspec (dllimport) не требуется?

Понимание разницы между f () и f (void) в C и C ++ раз и навсегда

Почему dd копирует только 128 байтов из / dev / random, когда я запрашиваю больше?

Давайте будем гением компьютера.