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();
}
}
}