-------------卸載Android應用程式的方法---------------

/**
* 卸載Android應用程式
*
* @param packageName
*/
public static void uninstallApk(Context ctx, String packageName) {
Uri packageURI = Uri.parse("package:" + packageName);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
ctx.startActivity(uninstallIntent);
}



---------------------判断是否卸载成功---------------------------



/**
* Created by IntelliJ IDEA.
* User: 羅代均
* Date: 2010-8-16
* Time: 18:11:19
*/
public class AppUninstallActivity extends Activity {

 

private List<ApplicationInfo> mApps;

 

private Handler handler = new Handler();

 

private UninstallReceiver mUninstallReceiver;

 

private String uninstallPackage;

 

private GridView gvApps;

 

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.app_uninstall);
mUninstallReceiver = new UninstallReceiver();

 

gvApps = (GridView) findViewById(R.id.gv_uninstall_apps);

 

gvApps.setOnItemClickListener(new GridView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
ApplicationInfo app = mApps.get(position);
uninstallPackage = app.packageName;
AppUtils.uninstallApk(AppUninstallActivity.this, uninstallPackage);
}
});



//查詢可卸載的應用
query();

 

//監聽卸載廣播
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_REMOVED);
filter.addDataScheme("package");
this.registerReceiver(mUninstallReceiver, filter);
}

 

@Override
protected void onDestroy() {
this.unregisterReceiver(mUninstallReceiver);
super.onDestroy();
}

 

private class UninstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (uninstallPackage != null && ("package:" + uninstallPackage).equals(intent.getDataString())) {
query();
Toast.makeText(AppUninstallActivity.this, R.string.uninstall_success, Toast.LENGTH_SHORT).show();
}
}
}

 

private void query() {
ThreadPoolFactory.getInstance().execute(new Runnable() {
public void run() {
mApps = AppUtils.getUnintalledApp(getPackageManager());
final AppUninstallAdapter adapter = new AppUninstallAdapter(AppUninstallActivity.this, mApps);
handler.post(new Runnable() {
public void run() {
gvApps.setAdapter(adapter);
}
});
}
});
}
}
 
http://www.360doc.com/content/11/1213/11/3700464_171897145.shtml
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()