2013年12月31日 星期二

Android 從程式中刪除程式(apk,package)

從程式中刪除自己或其他程式

/* 先找出欲刪除的Package Name */
PackageManager manager = context.getPackageManager();
Intent intent = new Intent().setPackage(PACKAGE_NAME);
List<ResolveInfo> infos = manager.queryIntentActivities(intent,PackageManager.GET_INTENT_FILTERS);


/* 如果有的話顯示確認視窗 */
if (infos.size() > 1) {
Builder builder = new AlertDialog.Builder(context);
builder.setMessage("您需要刪除這個程式嗎?");
builder.setPositiveButton("刪除"),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
                                                 /* 刪除指定的PACKAGE_NAME */
Uri packageUri = Uri.parse("package:"+ PACKAGE_NAME);
                                Intent intent = new Intent(Intent.ACTION_DELETE, packageUri);
                                context.startActivity(intent);
}
});
builder.show();
}

權限別忘了加上去
<uses-permission android:name="android.permission.DELETE_PACKAGES" />

※如果出現 "Permission is only granted to system apps"
eclipse 狀態列點選 → project → Clean
這可能是Bug


如果此篇對您有幫助,您可以點選廣告給予最大的動力,感謝您的收看。