业务场景介绍:
外出人员根据业务对拜访人进行拜访,保护外访人和拜访人的人生安全。本软件针对催收系统
少啰嗦 来几张效果图
功能介绍:
1.设备安全校验
2.百度地图(实时定位上传,导航,位置提醒,地址检索,添加多个mark点,mark点的点击事件)
3.拍照上传,录制视频上传,录制语音上传,图片选择上传,附件上传
4.文件压缩
5.批量文件上传
6.悬浮窗口的添加
项目总结:
在开发总没有遇到什么问题 就是测试的时候 有的手机无法弹出悬浮框 (给出我的解决办法 )记得权限申请 和动态权限
判断悬浮窗/// /** * 请求用户给予悬浮窗的权限 */ public void requestPermission() { if (isFloatWindowOpAllowed(this)) {//已经开启 windownRecord(); //正常业务逻辑 } else { openSetting(); } } /** * 打开权限设置界面 */ public void openSetting() { // try { startActivityForResult(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())), 11); /* Intent localIntent = new Intent( "miui.intent.action.APP_PERM_EDITOR"); localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity"); localIntent.putExtra("extra_pkgname", getPackageName()); startActivityForResult(localIntent, 11); logUtils .e("启动小米悬浮窗设置界面"); } catch (ActivityNotFoundException localActivityNotFoundException) { Intent intent1 = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent1.setData(uri); startActivityForResult(intent1, 11); logUtils .e("启动悬浮窗界面"); }*/ } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 11) { if (isFloatWindowOpAllowed(this)) {//已经开启 windownRecord(); } else { logUtils .e("开启悬浮窗失败"); ToastUtil.showToast(this,"请手动开启悬浮窗允许"); } } else if (requestCode == 12) { if (Build.VERSION.SDK_INT >= 23) { if (!Settings.canDrawOverlays(RecordActivity.this)) { ToastUtil.showToast(this,"权限授予失败,无法开启悬浮窗"); } else { windownRecord(); } } } } public void openFloat(){ //开启悬浮窗前先请求权限 if ("Xiaomi".equals(Build.MANUFACTURER)) {//小米手机 logUtils .e("小米手机"); requestPermission(); } else if ("Meizu".equals(Build.MANUFACTURER)) {//魅族手机 logUtils .e("魅族手机"); requestPermission(); } else {//其他手机 logUtils .e("其他手机"); if (Build.VERSION.SDK_INT >= 23) { if (!Settings.canDrawOverlays(this)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); startActivityForResult(intent, 12); } else { windownRecord(); } } else { windownRecord(); } } }