package com.jiuqi.njt.register; import java.io.BufferedInputStream; import java.io.File; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.provider.MediaStore; import android.util.Log; import android.widget.Button; import android.widget.TextView; import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean; import com.jiuqi.mobile.nigo.comeclose.bean.base.DataDictionaryBean; import com.jiuqi.mobile.nigo.comeclose.bean.base.KindsOfCarBean; import com.jiuqi.mobile.nigo.comeclose.bean.base.RoleCode; import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean; import com.jiuqi.mobile.nigo.comeclose.exception.LoginException; import com.jiuqi.mobile.nigo.comeclose.manager.base.IDataDictionaryManager; import com.jiuqi.mobile.nigo.comeclose.ws.client.ClientContext; import com.jiuqi.njt.data.CheckStateInterface; import com.jiuqi.njt.data.MyApp; import com.jiuqi.njt.data.Optdb_interfce; import com.jiuqi.njt.data.OptsharepreInterface; import com.jiuqi.njt.management.task.UpUserImageTask; import com.jiuqi.njt.model.NxwAppVoManager; import com.jiuqi.njt.register.RegisterTask.RegisterFinishReturnData; import com.jiuqi.njt.service.ServiceUtil; import com.jiuqi.njt.service.UpdateService; import com.jiuqi.njt.son.MyState; import com.jiuqi.njt.ui.CheckAppInstalledTask; import com.jiuqi.njt.ui.LoginActivityNew; import com.jiuqi.njt.ui.NjtMainActivity; import com.jiuqi.njt.ui.PoiLocateActivity; import com.jiuqi.njt.util.Constants; import com.jiuqi.njt.util.RepairUtils; import com.jiuqi.njt.util.ReturnObject; import com.jiuqi.njt.util.UIUtil; import com.jiuqi.njt.util.ValidateRule; import com.jiuqi.njt.util.Validator; import com.jiuqi.njt.util.login.GetLoginUserDataService; import com.jiuqi.njt.widget.ChosePictureDialog; import com.jiuqi.njt.widget.DialogWithList; import com.jqyd.android.module.lbs.util.CheckState_interface; import com.jqyd.utils.PhotoUtil; /** * 注册用的工具类 * * @author joe * */ public class RegisterUtils { private String TAG = this.getClass().getName(); /** * * @param context * @param managerClass * 请求方法的类名 * @param methodName * 请求的方法名 * @param parameterTypes * 请求的方法参数类型数组 * @param args * 请求的方法参数数组 * @param showDialog * 是否显示提示信息对话框 * @param allTaskInterface * 数据返回时回调的接口对象 */ public static void executeTask(Context context, Class<?> managerClass, String methodName, Class[] parameterTypes, Object[] args,boolean showDialog, final AllTaskInterface allTaskInterface) { new TestTask(context, new AllTaskInterface() { @Override public <T> void taskFinishReturn(T... result) { if(null!=allTaskInterface){ allTaskInterface.taskFinishReturn(result); } } }, managerClass, methodName, parameterTypes, args,showDialog,5).execute(); } /** * 获取农机类别(大小类) * * @param context * @param allTaskInterface * 数据返回时回调的接口对象 */ @SuppressWarnings("unchecked") public static void getAgriculturalCategory(Context context, final AllTaskInterface allTaskInterface) { Optdb_interfce database = new Optdb_interfce(context); database.createNJTable(); // 创建数据库表(表存在时不执行) ArrayList<KindsOfCarBean> agriculturalBCategoryList = database .getKindsOfCarBeanInfo(MyState.CAR_BIG_TYPE_MARK + ""); // 从数据库中查询数据,如果有数据则不再从网络端获取 if (null != agriculturalBCategoryList && agriculturalBCategoryList.size() != 0) { ArrayList<KindsOfCarBean> agriculturalSCategoryList = database .getSmallKindsOfCarBeanInfo(MyState.CAR_SMALL_TYPE_MARK + "", agriculturalBCategoryList.get(0) .getBigClassName()); if (agriculturalSCategoryList.size() != 0) { ArrayList<KindsOfCarBean> agriculturalPCategoryList = database .getSmallKindsOfCarBeanPMInfo(MyState.CAR_TYPE_MARK + "", agriculturalSCategoryList.get(0) .getSmallClassName()); /** * 将农机类别数据返回 */ allTaskInterface.taskFinishReturn(agriculturalBCategoryList, agriculturalSCategoryList, agriculturalPCategoryList); } } else { new GetDriverDataTask(context, new AllTaskInterface() { @Override public <T> void taskFinishReturn(T... result) { allTaskInterface.taskFinishReturn(result); } }).execute(); } } /** * 根据注册返回的结果和验证用户对象,判断注册的下一步流程 * * @param context * @param result * 注册返回的结果对象 * @param userBean * 验证用户的返回用户对象 * @param isRegisterByOther * 判断是不是其他用户注册 */ public static <T> void judgeRegisterMethods(final Context context, T[] result,UserBean userBean,boolean isRegisterByOther) { RegisterFinishReturnData registerFinishReturnData = (RegisterFinishReturnData) result[0]; Log.e("judgeRegisterMethods", registerFinishReturnData.toString()); if (registerFinishReturnData.isRegisterSucess())// 注册成功进入下一步,否则就直接在异步类中提示失败原因 { if (registerFinishReturnData.isClientContextSucess())// 注册成功,并且获取到Session就进行下一步,否则就跳转到登录页面 { Intent jump = new Intent(); jump.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); String sessionId = registerFinishReturnData.getRegisterReturnString(); jump.putExtra("sessionId",sessionId); if (null == userBean) // 说明是注册,就跳转到选择角色页面 { UIUtil.showMsg(context, "已经注册成功,初始密码是手机号的后六位"); jump.setClass(context, SelectRole.class); jump.putExtra("isRegisterByOther", isRegisterByOther); } else// 说明是通过验证码登录 { if (registerFinishReturnData.isNeedPerfectInfor()) // 如果判断用户是否完善信息成功,就进行下一步,否则跳转到登录页面 { if ("perfectinfo".equals(registerFinishReturnData.getGetNeedPerfectInforString())) // 没有完善信息,就跳转到完善信息页面 { // 如果是老用户先要插入角色,然后整合模块,(更新SessionID) jump.setClass(context, PerfectInformation.class); jump.putExtra("UserBean", userBean); } else if ("index".equals(registerFinishReturnData.getGetNeedPerfectInforString()))// 如果已经完善信息,就直接进入主页 { // 如果是老用户先要插入角色,然后整合模块,(更新SessionID) jump.setClass(context, NjtMainActivity.class); MyApp application = (MyApp) context.getApplicationContext(); application.setIsLogin(true); new RegisterUtils().loginSuccess(context); } else if ("chooserole".equals(registerFinishReturnData.getGetNeedPerfectInforString()))// 如果是没选择角色,就跳转到完善信息页面 { jump.setClass(context, SelectRole.class); } else { UIUtil.showMsg(context, "错误的状态"); jump.setClass(context, LoginActivityNew.class); } } else { jump.setClass(context, LoginActivityNew.class); } } context.startActivity(jump); ((Activity) context).finish(); } else { UIUtil.showMsg(context, registerFinishReturnData.getRegisterReturnString()); } } } /** * 根据用户对象保存用户的角色数据 * * @param context * @param userBean * 用户对象 * @param sessionId * 注册返回的SessionID * @param allTaskInterface * 验证用户的返回用户对象 */ public static void saveUserRolesByUserBean(Context context, UserBean userBean, String sessionId,final AllTaskInterface allTaskInterface,boolean showDialog) { List<RoleCode> roleCodeList = getUserSelectRoles(userBean); saveUserRolesByRoles(context, roleCodeList, sessionId,new AllTaskInterface() { @Override public <T> void taskFinishReturn(T... result) { // TODO Auto-generated method stub allTaskInterface.taskFinishReturn(result); } },showDialog); } /** * 根据用户选择的角色保存角色数据 * * @param context * @param roleCodeList * 用户选择的角色 * @param sessionId * 注册返回的SessionID * @param allTaskInterface * 验证用户的返回用户对象 */ public static void saveUserRolesByRoles(Context context, List<RoleCode> roleCodeList, String sessionId,final AllTaskInterface allTaskInterface,boolean showDialog) { new SaveUserRolesTask(context, roleCodeList, sessionId,new AllTaskInterface() { @Override public <T> void taskFinishReturn(T... result) { // TODO Auto-generated method stub allTaskInterface.taskFinishReturn(result); } },showDialog).execute(); } /** * 请求位置标记 * 请求码Constants.REQUEST_MAP_LOCATE_CODE * @param context */ public static void requestLocation(Activity context) { Intent intent = new Intent(context, PoiLocateActivity.class); context.startActivityForResult(intent, Constants.REQUEST_MAP_LOCATE_CODE); } /** * 验证控件上是不是有内容, * @param context * @param widgets * 待验证的控件数组(TextView[] ) * @return */ public static boolean validatorTextViewHaveData(Context context, TextView[] widgets) { Validator validator = null; ReturnObject ro = null; validator = new Validator(); validator.addRules(ValidateRule.IS_NOT_EMPTY); for (TextView w : widgets) { ro = validator.val(w.getText()); if (!ro.isSuccess) { UIUtil.showMsg(context, w.getHint().toString()); w.requestFocus(); return false; } } return true; } /** * 验证控件内容是不是电话号码 * @param context * @param widgets * 待验证的控件数组(TextView[] ) * @return */ public static boolean validatorIsPhoneNumber(Context context, TextView[] widgets) { Validator validator = null; ReturnObject ro = null; validator = new Validator(); validator.addRules(ValidateRule.IS_MOBILE_NUMBER); for (TextView w : widgets) { ro = validator.val(w.getText()); if (!ro.isSuccess) { w.requestFocus(); UIUtil.showMsg(context, ro.getErrorMessage()); return false; } } return true; } /** * 弹出一个对话框(ListView样式,还包含一个标题和一个取消按钮) * * @param items * 显示内容 * @param btn * 触发对话框弹出按钮 * @param title * 弹出框标题 */ public static void doPopWindow(Context context, final Button btn, final String[] items, String title, final JDialogOnItemOnClick jDialogOnItemOnClick) { if (null != items && items.length > 0) { DialogWithList.Builder dialog = new DialogWithList.Builder(context); dialog.setTitle(title); dialog.setPositiveButton(Constants.CANCEL_TEXT, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); } }); dialog.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub btn.setText(items[which]); dialog.dismiss(); jDialogOnItemOnClick.JItemClick(which); } }); dialog.create().show(); } } public interface JDialogOnItemOnClick { /** * 返回选择的下标 * @param index */ public void JItemClick(int index); } /** * 获取完善信息相应的角色类别数据 * 主要包括农机厂家(90005)、加油站(90001)、维修点(10502)、服务机构(90002)、合作社(30101) * * @param context * 上下文环境 * @param allTaskInterface * 数据返回接口,返回的数据类型是T[](泛型数组) * 数据存在数组的第一个索引位置,类型是DataDictionaryBean[] * @param mark * 对应角色的标识 * 农机厂家(90005)、加油站(90001)、维修点(10502)、服务机构(90002)、合作社(30101) */ public static void getPerfectMessage(Context context, final AllTaskInterface allTaskInterface, int mark) { if(new CheckState_interface(context).checkConnection()){ Class<?> managerClass = IDataDictionaryManager.class; final String methodName = "get"; Class[] parameterTypes = { int.class }; Object[] args = { mark }; new TestTask(context, new AllTaskInterface() { @Override public <T> void taskFinishReturn(T... result) { allTaskInterface.taskFinishReturn(result); } }, managerClass, methodName, parameterTypes, args,true,5).execute(); }else{ UIUtil.showMsg(context, Constants.NETWORK_STATE_ERROR); } } /** * 根据农机类别获取到农机类别对应的名称 * * @param dataArray * 农机类别 * @return String[] 农机类别获取到农机类别对应的名称 */ public static String[] getDataDictionaryBeanName( DataDictionaryBean[] dataArray) { String[] nameArray = null; if (null != dataArray && dataArray.length > 0) { nameArray = new String[dataArray.length]; for (int i = 0; i < dataArray.length; i++) { nameArray[i] = dataArray[i].getName(); } } return nameArray; } /** * 根据用户对象获取到用户选择的角色 * * @param userBean * 用户对象 * @return List<RoleCode> 用户选择的角色集合 */ public static List<RoleCode> getUserSelectRoles(UserBean userBean) { List<RoleCode> selectRoleList = new ArrayList<RoleCode>(); if(null!=userBean){ if(null!=userBean){ String roleString = userBean.getRolesString(); @SuppressWarnings("static-access") RoleCode[] allRoleCodeArray = RoleCode.CityManager.values(); for (RoleCode roleCode : allRoleCodeArray) { if(roleString.contains(roleCode.getWeiyima())){ selectRoleList.add(roleCode); } } } } return selectRoleList; } /** * 获取用户可以添加的员工角色集合 * @param context * @return ArrayList<RoleCode> * 用户可以添加的员工角色集合 */ public static ArrayList<RoleCode> getUserStaffRolesArray(Context context){ ArrayList<RoleCode> staffCategory = new ArrayList<RoleCode>(); if(null!=context){ OptsharepreInterface sharePre = new OptsharepreInterface(context); String rolesString = sharePre.getPres("rolesString"); if(!"".equals(rolesString)){ if(rolesString.contains(RoleCode.AdminManager.getWeiyima())){ staffCategory.add(RoleCode.OrgEmployee); }else if(rolesString.contains(RoleCode.Cooper.getWeiyima())){ staffCategory.add(RoleCode.CooperEmployee); }else if(rolesString.contains(RoleCode.Repair.getWeiyima())){ staffCategory.add(RoleCode.ReapirEmployee); }else if(rolesString.contains(RoleCode.Dealer.getWeiyima())){ staffCategory.add(RoleCode.DealerEmployee); } } for (RoleCode roleCode : staffCategory) { Log.e("getUserStaffRolesArray", roleCode.getName()); } } return staffCategory; } /** * 获取用户可以添加的员工角色集合 * @param context * @return ArrayList<RoleCode> * 用户可以添加的员工角色集合 */ public static ArrayList<RoleCode> getUserRolesArray(Context context){ ArrayList<RoleCode> staffCategory = new ArrayList<RoleCode>(); if(null!=context){ OptsharepreInterface sharePre = new OptsharepreInterface(context); String rolesString = sharePre.getPres("rolesString"); if(!"".equals(rolesString)){ if(rolesString.contains(RoleCode.AdminManager.getWeiyima())){ staffCategory.add(RoleCode.AdminManager); }else if(rolesString.contains(RoleCode.Cooper.getWeiyima())){ staffCategory.add(RoleCode.Cooper); }else if(rolesString.contains(RoleCode.Repair.getWeiyima())){ staffCategory.add(RoleCode.Repair); }else if(rolesString.contains(RoleCode.Dealer.getWeiyima())){ staffCategory.add(RoleCode.Dealer); } } for (RoleCode roleCode : staffCategory) { Log.e("getUserStaffRolesArray", roleCode.getName()); } } return staffCategory; } /** * * @param context * @param manager * 请求接口的管理对象 * @param managerInterface * 获取到接口的管理对象后返回管理对象的接口 * @param dialogType * 显示的对话框类型1 :正在定位...2:正在获取天气...3:正在验证账号... 4:正在提交数据...5:正在获取数据... 6:正在验证手机号码... */ @SuppressWarnings("hiding") public static <T> void getData(Context context,Class<?> manager,final TaskInterface taskInterface,int dialogType){ if(new CheckStateInterface(context).checkConnection()){ new BaseTask<T>(context, manager, new TaskInterface() { @Override public <T> void taskFinishReturn(T... result) { taskInterface.taskFinishReturn(result); } @Override public <T> void taskExecuteReturn(T... result) { taskInterface.taskExecuteReturn(result); } },dialogType).execute(); }else{ UIUtil.showMsg(context,Constants.NETWORK_STATE_ERROR); } } /** * 将登录的用户信息保存到手机上 * * @param context * @param userBean * 登录的用户对象 */ public static void saveLoginData(Context context,UserBean userBean) { OptsharepreInterface sharePre = new OptsharepreInterface(context); MyApp application = (MyApp) context.getApplicationContext(); if(null!=userBean){ sharePre.putPres("guid", userBean.getGuid()); AdminAreaBean xzqh = userBean.getAdminArea() ; if(null!=xzqh){ sharePre.putPres("province", xzqh.getProvinceName()); sharePre.putPres("provinceCode", String.valueOf(xzqh.getProvinceCode())); sharePre.putPres("areacode", String.valueOf(xzqh.getCode())); sharePre.putPres("city", xzqh.getCityName()); sharePre.putPres("cityCode", String.valueOf(xzqh.getCityCode())); sharePre.putPres("country", xzqh.getCityName()); } sharePre.putPres("account", userBean.getAccount()); sharePre.putPres("username", userBean.getUserName()); sharePre.putPres("mobileNumber", userBean.getMobileNumber()); sharePre.putPres("role", String.valueOf(userBean.getRole_().getCode())); String rolesString = sharePre.getPres("rolesString"); String newRolesString = userBean.getRolesString(); /** * 如果角色标示(rolesString)为空或者之前记录的角色标示和用户的角色标示不一样 * 说明需要获取角色模块数据,设置application的whetherUpdateRolesModule状态是true(表示需要更新角色模块数据) */ if("".equals(rolesString)||!rolesString.equals(newRolesString)){ sharePre.putPres("rolesString", null==newRolesString?"":newRolesString); application.setWhetherUpdateRolesModule(true); } /** * 多角色后用户的角色GUID为用户的GUID+rolesString */ sharePre.putPres("roleguid", userBean.getGuid()+userBean.getRolesString()); sharePre.putPres("mark", userBean.getRole().getMark()); sharePre.putPres("level", String.valueOf(userBean.getLevel())); sharePre.putPres("isPublicInfo",String.valueOf(userBean.getIsPublicInfo())); sharePre.putPres("state", String.valueOf(userBean.getState().getCode()));// 0未激活,1激活,2关闭 sharePre.putPres("imageURL", userBean.getImagePath()); /** * 管理员角色, */ sharePre.putPres("coRoleStrings", userBean.getCoRoleStrings()); if(userBean.getRole_().getCode() == RoleCode.Driver.getCode() ||userBean.getRolesString().contains(RoleCode.Driver.getWeiyima())){ RegisterUtils.startService(context); }else{ RegisterUtils.stopService(context); } } } /** * 更新任务服务 */ // public final static String UpPlanServiceName = UpLocationService.class.getName(); /** * 定时上报服务 */ // public final static String UpLocServiceName = TimerUpLocationService.class.getName(); /** * 重传服务 */ // public final static String RetransServiceName = RetransmissionService.class.getName(); /** * 更新客户端服务 */ public final static String UpdateServiceName = UpdateService.class.getName(); /** * 启动服务(更新任务服务、定时上报服务、重传服务) * @param context */ public static void startService(Context context){ ServiceUtil.startService(context); } public static void stopService(Context context2) { ServiceUtil.stopService(context2); } /** * 检测用户的角色模块数据和用户模块数据是否需要更新 * @param context */ public static void getUserModuleData(Context context){ Optdb_interfce db = new Optdb_interfce(context); db.createTable();// 鉴权成功,创建数据库 db.close_SqlDb(); context.startService(new Intent(context, GetLoginUserDataService.class)); // new CheckModuleVersionTask(context).execute(); } /** * 处理登录成功后的操作 * 因为数据较多,所以在线程中处理 * @param context */ public static void loginSuccess(final Context context){ new Thread(new Runnable() { @Override public void run() { if (null != context) { MyApp application = (MyApp) context.getApplicationContext(); // Log.e(TAG, "用户登录"+application.getIsLogin()); if(application.getIsLogin()){ // /** // * 登录后查询公告通知 // */ // AdminAreaBean xzqh = null; // if (application.getProvince() != null && application.getProvinceCode() != null) { // xzqh = new AdminAreaBean(); // xzqh.setCode(UIUtil.tryToLong(application.getProvinceCode())); // } // new QueryNewsTask(context, xzqh).execute(); OptsharepreInterface sharePre = new OptsharepreInterface(context); //记录登录账号,验证码登录使用 UserBean userBean = getLoginUserBean(context); if(null!=userBean){ sharePre.putPres("account",userBean.getAccount()); //记录登录者的信息 saveLoginData(context, userBean); // String newRolesString = getLoginUserBean(context).getRolesString(); // sharePre.putPres("rolesString", null==newRolesString?"":newRolesString); // //设置登陆成功标示 // application.setIsLogin(true); //发送登录成功广播,更新侧滑菜单页面 Intent intent = new Intent(); intent.setAction("loginSuccess"); context.sendBroadcast(intent); /** * 登录成功,需要设置application的isShowDialog为true * 表示首页显示获取用户模块进度条 */ // application.setShowDialog(true); // 鉴权成功,创建数据库 // Optdb_interfce db = new Optdb_interfce(context); // db.createTable(); // db.close_SqlDb(); // 启动相关服务 // new RegisterUtils().startService(context); //获取角色模块数据 // context.startService(new Intent(context, GetLoginUserDataService.class)); // new CheckModuleVersionTask(context).execute(); } } } } }).start();; } /** * 处理登录成功后的操作 * 因为数据较多,所以在线程中处理 * @param context * @date 20150609 */ public static void loginSuccessNew(final Context context,final UserBean userBean){ new Thread(new Runnable() { @Override public void run() { if (null != context) { //记录登录账号,验证码登录使用 if(null!=userBean){ //记录登录者的信息 +启动相关服务 saveLoginData(context, userBean); //发送登录成功广播,更新侧滑菜单页面 Intent intent = new Intent(); intent.setAction("loginSuccess"); context.sendBroadcast(intent); /** * 登录成功,需要设置application的isShowDialog为true * 表示首页显示获取用户模块进度条 */ //设置推送的标签 UIUtil.setPushMsgTags(context); } } } }).start(); } /** * 获取当前登陆用户的UserBean * @param context * @return UserBean */ public static UserBean getLoginUserBean(Context context){ UserBean bean=null; if(null!=context){ MyApp application = (MyApp) context.getApplicationContext(); ClientContext clientContext = application.getClientContext(); if(null!=clientContext){ try { clientContext = ClientContext.getClientContext(Constants.SERVER_URL, clientContext.getSessionID()); application.setClientContext(clientContext); bean = clientContext.getUser(); } catch (LoginException e) { e.printStackTrace(); } } } return bean; } /** * 打开其他程序 如果手机上没有安装这个程序就弹出下载的提示框 * * @param context * @param appName * 要打开的应用名称(必须在RAW文件夹下面的NJT文件中配置) */ public static void startOtherApp(Context context,String appName){ NxwAppVoManager ma = NxwAppVoManager .getInstance(context); new CheckAppInstalledTask(context).execute(ma .getAppByName(appName)); } private Context context; public RegisterUtils() { super(); } public RegisterUtils(Context context) { super(); this.context = context; } public static final int PHOTO_IMAGE_CODE = 300; public static final int PHOTOGRAPH = 400; private File myImageFile; public File getMyImageFile() { return myImageFile; } /** * 创建一个 拍照对话框 * 主要包括三个按钮 从手机相册选择、拍照、取消 * */ public void takeCameraDialog(final Context context) { ChosePictureDialog.Builder builder = new ChosePictureDialog.Builder( context); builder.setDialogGravity(false); builder.setChosePictureFromPhoneButton("从手机相册选择", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (PhotoUtil.photos.size() < 1) { Intent intent1 = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); ((Activity)(context)).startActivityForResult(intent1, PHOTO_IMAGE_CODE); dialog.dismiss(); } } }); builder.setChosePictureFromCameraButton("拍照", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (!RepairUtils.isExistSDCard()) { UIUtil.showMsg(context, "SD卡不存在,请安装SD后再进行操作"); return; } myImageFile = RepairUtils.createFile(new File("")); if (PhotoUtil.photos.size() < 1) { Intent intent3 = new Intent( MediaStore.ACTION_IMAGE_CAPTURE); Uri imageUri = Uri.fromFile(myImageFile); intent3.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); ((Activity)(context)).startActivityForResult(intent3, PHOTOGRAPH); } dialog.dismiss(); } }); builder.setChosePictureCancelButton("取消", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } public static void upLoadImage(Context context,String imagePath){ new UpUserImageTask(context, imagePath).execute(); } // 根据图片的url得到要显示的图片 public static Bitmap getBitmap(String url) { Bitmap bm = null;// 生成了一张bmp图像 try { URL iconurl = new URL(url); URLConnection conn = iconurl.openConnection(); conn.connect(); // 获得图像的字符流 InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is, 8192); bm = BitmapFactory.decodeStream(bis); bis.close(); is.close();// 关闭流 } catch (Exception e) { e.printStackTrace(); } return bm; } }