Неявное намерение удалить приложение?
Я пытаюсь, чтобы вызов 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);
но синтаксис неверен. Попробовали несколько разных способов назвать это, и я застрял. Не уверен, как это назвать. Спасибо за вашу помощь.
- Получить событие удаления приложения в android
- Выполните задачу по удалению в android
- Как удалить пакет из Laravel с помощью композитора?
- Как исправить ошибки несоответствия версии pg_dump?
- установить / удалить APK программно (PackageManager vs Intents)
- Как показать активность до того, как мое приложение будет удалено (Android)
- Что противоположно «make install», то есть как вы удаляете библиотеку в Linux?
- Почему MSI требует, чтобы исходный файл .msi продолжал деинсталляцию?
- Принудительное удаление Visual Studio 2015
- Как приложение может обнаружить, что оно будет удалено?
- Полностью удалить PostgreSQL 9.0.4 от Mac OSX Lion?
- Как предотвратить удаление приложения?
Прежде всего, обратите внимание, что 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
, затем запустите действие для результата и проверьте код результата, возможно, он вернет поле кода / дополнительного поля в намерении данных, говоря, что такое ошибка (прочтите в документации для этого)