package com.jiuqi.njt.ui; import java.io.File; import java.util.List; import android.app.AlertDialog; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.AsyncTask; import android.os.Handler; import com.jiuqi.njt.model.NxwAppVo; import com.jiuqi.njt.receiver.ActivityStartIntentReceiver; import com.jiuqi.njt.util.RepairUtils; import com.jiuqi.njt.util.ReturnObject; import com.jiuqi.njt.widget.ProgressDialogStyle; /** * <p> * 检查APK是否安装的任务 * </p> * * <p> * Copyright: 版权所有 (c)<br> * Company: 久其 * </p> * * @author liyue * @version 2013-8-9 */ public class CheckAppInstalledTask extends AsyncTask<NxwAppVo, Void, ReturnObject> { private Context context; private Dialog pd = null; public CheckAppInstalledTask(Context context) { this.context = context; } @Override protected void onPreExecute() { pd = ProgressDialogStyle.createLoadingDialog(context, "正在初始化管理版,请稍候..."); pd.setCancelable(false); pd.show(); } @Override protected ReturnObject doInBackground(NxwAppVo... params) { NxwAppVo vo = params[0]; boolean flag = false; try { PackageManager packageManager = context.getPackageManager(); if (null != context.getPackageManager()) { List<PackageInfo> packs = packageManager.getInstalledPackages(0); for (int i = 0; i < packs.size(); i++) { PackageInfo p = packs.get(i); if (p.versionName == null) { continue; } String appname = p.applicationInfo.loadLabel(packageManager).toString(); String pname = p.packageName; // Log.v(Constants.TAG, ("appname:" + appname + ",pname:" + // pname)); if (appname.equals(vo.getName()) || pname.equals(vo.getPackageName())) { flag = true; break; } } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ReturnObject ro = new ReturnObject(); ro.isSuccess = flag; ro.data = vo; return ro; } @Override protected void onPostExecute(ReturnObject result) { if(null != pd){ pd.dismiss(); } final NxwAppVo vo = (NxwAppVo) result.data; if (result.isSuccess) { try { Intent intent = new Intent(context, ActivityStartIntentReceiver.class); intent.putExtra("packageName", vo.getPackageName()); intent.putExtra("pac_acvity", vo.getActivity()); context.sendBroadcast(intent); } catch (Exception e) { AlertDialog.Builder build = new AlertDialog.Builder(context); build.setMessage("对不起,启动应用程序时出现异常,请与我们联系!").setPositiveButton( "确定", null); AlertDialog dialog = build.create(); dialog.setCanceledOnTouchOutside(false); dialog.show(); e.printStackTrace(); } // activity.finish(); } else { AlertDialog.Builder build = new AlertDialog.Builder(context); build.setMessage("是否安装 " + vo.getName() + " ?") .setPositiveButton("是", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // 启动下载安装任务 new DownLoadApkTask(context).execute(vo); } }) .setNegativeButton("否", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // activity.finish(); } }); AlertDialog dialog = build.create(); dialog.setCanceledOnTouchOutside(false); dialog.show(); } } }