Commit 7db96050 by 罗翻

修复人脸识别bug,增加定位服务

parent a0869d63
...@@ -106,6 +106,9 @@ ...@@ -106,6 +106,9 @@
android:name="com.hyphenate.chat.EMJobService" android:name="com.hyphenate.chat.EMJobService"
android:exported="true" android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" /> android:permission="android.permission.BIND_JOB_SERVICE" />
<service android:name=".ui.service.LocationService"
android:exported="true"
/>
<!-- 声明SDK所需的receiver --> <!-- 声明SDK所需的receiver -->
<receiver android:name="com.hyphenate.chat.EMMonitorReceiver"> <receiver android:name="com.hyphenate.chat.EMMonitorReceiver">
<intent-filter> <intent-filter>
......
...@@ -42,7 +42,8 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa ...@@ -42,7 +42,8 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
public void initView() { public void initView() {
MobclickAgent.openActivityDurationTrack(false); MobclickAgent.openActivityDurationTrack(false);
mActivity = this; mActivity = this;
String[] mPerArr = new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}; String[] mPerArr = new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE
, Manifest.permission.CAMERA};
MPermissionUtils.requestPermissionsResult(mActivity, SDK_PERMISSION_REQUEST, mPerArr, new MPermissionUtils.OnPermissionListener() { MPermissionUtils.requestPermissionsResult(mActivity, SDK_PERMISSION_REQUEST, mPerArr, new MPermissionUtils.OnPermissionListener() {
@Override @Override
......
package com.dayu.bigfish; package com.dayu.bigfish;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
...@@ -8,6 +9,7 @@ import android.net.ConnectivityManager; ...@@ -8,6 +9,7 @@ import android.net.ConnectivityManager;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.Handler; import android.os.Handler;
import com.dayu.bigfish.ui.service.LocationService;
import com.dayu.bigfish.utils.HxManager; import com.dayu.bigfish.utils.HxManager;
import com.dayu.common.BaseApplication; import com.dayu.common.BaseApplication;
import com.dayu.common.Constants; import com.dayu.common.Constants;
...@@ -80,7 +82,15 @@ public class MyApplication extends BaseApplication { ...@@ -80,7 +82,15 @@ public class MyApplication extends BaseApplication {
res.updateConfiguration(config, res.getDisplayMetrics()); res.updateConfiguration(config, res.getDisplayMetrics());
} }
@Override
public void runBackGround() {
startService(new Intent(mContext, LocationService.class));
}
@Override
public void runFrontGround() {
startService(new Intent(mContext, LocationService.class));
}
public static MyApplication getAppContext() { public static MyApplication getAppContext() {
return myApplication; return myApplication;
......
...@@ -27,6 +27,8 @@ public interface MainContract { ...@@ -27,6 +27,8 @@ public interface MainContract {
void showUpdateDialog(VersionInfo info); void showUpdateDialog(VersionInfo info);
void initNotification(); void initNotification();
void startLocaitonService();
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
......
...@@ -27,6 +27,7 @@ import com.dayu.bigfish.databinding.ActivityMainBinding; ...@@ -27,6 +27,7 @@ import com.dayu.bigfish.databinding.ActivityMainBinding;
import com.dayu.bigfish.presenter.main.MainContract; import com.dayu.bigfish.presenter.main.MainContract;
import com.dayu.bigfish.presenter.main.MainPresenter; import com.dayu.bigfish.presenter.main.MainPresenter;
import com.dayu.bigfish.ui.fragment.HomeFirstTabFragment; import com.dayu.bigfish.ui.fragment.HomeFirstTabFragment;
import com.dayu.bigfish.ui.service.LocationService;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.DownloadBean; import com.dayu.event.DownloadBean;
import com.dayu.location.base.LocationUtils; import com.dayu.location.base.LocationUtils;
...@@ -37,6 +38,7 @@ import com.dayu.provider.event.RefreshReceivingNum; ...@@ -37,6 +38,7 @@ import com.dayu.provider.event.RefreshReceivingNum;
import com.dayu.provider.event.SwtichFragment; import com.dayu.provider.event.SwtichFragment;
import com.dayu.provider.router.RouterPath; import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.fragment.HomePersonFragment; import com.dayu.usercenter.ui.fragment.HomePersonFragment;
import com.dayu.utils.UserManager;
import com.dayu.utils.badgeNumberManger.BadgeNumberManager; import com.dayu.utils.badgeNumberManger.BadgeNumberManager;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.onDownloadListener; import com.dayu.widgets.listener.onDownloadListener;
...@@ -84,6 +86,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin ...@@ -84,6 +86,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
addFragment(); addFragment();
initListener(); initListener();
doAction(getIntent()); doAction(getIntent());
startLocaitonService();
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
} }
...@@ -230,6 +233,13 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin ...@@ -230,6 +233,13 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
notificationManager.notify(0, builder.build()); notificationManager.notify(0, builder.build());
} }
@Override
public void startLocaitonService() {
Intent intent = new Intent(mActivity, LocationService.class);
intent.putExtra(Constants.ID, UserManager.getInstance().getUser().getAccountId());
mActivity.startService(intent);
}
/** /**
* 处理intent传来的信息. * 处理intent传来的信息.
* *
...@@ -319,7 +329,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin ...@@ -319,7 +329,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onDownloadEvent(DownloadBean event) { public void onDownloadEvent(DownloadBean event) {
int progress = (int) Math.round(event.getBytesReaded() / (double) event.getTotal() * 100); int progress = (int) Math.round(event.getBytesReaded() / (double) event.getTotal() * 100);
if (builder==null){ if (builder == null) {
return; return;
} }
builder.setContentInfo(String.valueOf(progress) + "%").setProgress(100, progress, false); builder.setContentInfo(String.valueOf(progress) + "%").setProgress(100, progress, false);
......
package com.dayu.bigfish.ui.service;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.support.annotation.Nullable;
import com.dayu.common.Constants;
import com.dayu.location.base.LocationUtils;
import com.dayu.utils.LogUtils;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by luofan
* on 2018/7/17.
*/
public class LocationService extends Service {
private final Timer mTimer = new Timer();
private TimerTask mTask;
private Handler mHandler;
@SuppressLint("HandlerLeak")
@Override
public void onCreate() {
super.onCreate();
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mHandler.post(() -> LocationUtils.getCurrentLocation(location -> {
if (location != null) {
LogUtils.d("locationService", location.getCity());
}
}));
super.handleMessage(msg);
}
};
mTask = new TimerTask() {
@Override
public void run() {
sendMessage();
}
};
mTimer.schedule(mTask, 2000, 30000);
}
public void sendMessage() {
Message message = new Message();
message.what = 1;
mHandler.sendMessage(message);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String id = intent.getStringExtra(Constants.ID);
sendMessage();
return super.onStartCommand(intent, flags, startId);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
mTimer.cancel();
mHandler = null;
}
}
...@@ -41,6 +41,7 @@ public class BaseApplication extends MultiDexApplication { ...@@ -41,6 +41,7 @@ public class BaseApplication extends MultiDexApplication {
} }
private class SwitchBackgroundCallbacks implements Application.ActivityLifecycleCallbacks { private class SwitchBackgroundCallbacks implements Application.ActivityLifecycleCallbacks {
int count = 0;
@Override @Override
public void onActivityCreated(Activity activity, Bundle bundle) { public void onActivityCreated(Activity activity, Bundle bundle) {
...@@ -49,7 +50,10 @@ public class BaseApplication extends MultiDexApplication { ...@@ -49,7 +50,10 @@ public class BaseApplication extends MultiDexApplication {
@Override @Override
public void onActivityStarted(Activity activity) { public void onActivityStarted(Activity activity) {
if (count == 0) {
runFrontGround();
}
count++;
} }
@Override @Override
...@@ -64,7 +68,10 @@ public class BaseApplication extends MultiDexApplication { ...@@ -64,7 +68,10 @@ public class BaseApplication extends MultiDexApplication {
@Override @Override
public void onActivityStopped(Activity activity) { public void onActivityStopped(Activity activity) {
count--;
if (count == 0) {
runBackGround();
}
} }
@Override @Override
...@@ -77,4 +84,17 @@ public class BaseApplication extends MultiDexApplication { ...@@ -77,4 +84,17 @@ public class BaseApplication extends MultiDexApplication {
AppManager.getInstance().remove(activity); AppManager.getInstance().remove(activity);
} }
} }
/**
* app切换到后台时回调.
*/
public void runBackGround() {
}
/**
* app切换到前台时回调.
*/
public void runFrontGround() {
}
} }
...@@ -446,7 +446,7 @@ ...@@ -446,7 +446,7 @@
<string name="certification_error">联网授权失败!请检查网络或找服务商</string> <string name="certification_error">联网授权失败!请检查网络或找服务商</string>
<string name="certification_getphoto_error">获取相机权限失败</string> <string name="certification_getphoto_error">获取相机权限失败</string>
<string name="next_step">下一步</string> <string name="next_step">下一步</string>
<string name="accredit_error">授权失败</string> <string name="accredit_error">人脸识别授权失败</string>
<string name="certification_success">认证成功</string> <string name="certification_success">认证成功</string>
<string name="certification_fail">认证失败</string> <string name="certification_fail">认证失败</string>
<string name="certification_again">重新认证</string> <string name="certification_again">重新认证</string>
......
...@@ -5,13 +5,11 @@ import android.content.Context; ...@@ -5,13 +5,11 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Handler; import android.os.Handler;
import android.widget.Toast;
import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption; import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener; import com.amap.api.location.AMapLocationListener;
import com.dayu.location.R;
import java.io.File; import java.io.File;
...@@ -145,7 +143,6 @@ public class LocationUtils { ...@@ -145,7 +143,6 @@ public class LocationUtils {
intent.addCategory("android.intent.category.DEFAULT"); intent.addCategory("android.intent.category.DEFAULT");
mContext.startActivity(intent); mContext.startActivity(intent);
} else { } else {
Toast.makeText(mContext, R.string.install_gd_map, Toast.LENGTH_SHORT).show();
goToMarket(mContext, "com.autonavi.minimap"); goToMarket(mContext, "com.autonavi.minimap");
} }
} }
......
...@@ -2,6 +2,8 @@ package com.dayu.order.presenter.orderdoing; ...@@ -2,6 +2,8 @@ package com.dayu.order.presenter.orderdoing;
import android.databinding.ObservableField; import android.databinding.ObservableField;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import com.dayu.common.BaseApplication; import com.dayu.common.BaseApplication;
import com.dayu.common.Constants; import com.dayu.common.Constants;
...@@ -15,8 +17,12 @@ import com.dayu.order.ui.activity.OrderLivenessActivity; ...@@ -15,8 +17,12 @@ import com.dayu.order.ui.activity.OrderLivenessActivity;
import com.dayu.order.ui.fragment.OrderThreeTabFragment; import com.dayu.order.ui.fragment.OrderThreeTabFragment;
import com.dayu.provider.event.RefreshTab; import com.dayu.provider.event.RefreshTab;
import com.dayu.utils.AppManager; import com.dayu.utils.AppManager;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.megvii.idcardlib.util.ConUtil;
import com.megvii.licensemanager.Manager;
import com.megvii.livenessdetection.LivenessLicenseManager;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
...@@ -36,11 +42,11 @@ import static com.dayu.utils.UIUtils.getString; ...@@ -36,11 +42,11 @@ import static com.dayu.utils.UIUtils.getString;
*/ */
public class OrderDoingPresenter extends orderDoingContract.Presenter { public class OrderDoingPresenter extends orderDoingContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>(); private ObservableField<Object> datas = new ObservableField<>();
private static final int PAGE_INTO_LIVENESS = 100;
private int mUserId; private int mUserId;
private int mSiteId; private int mSiteId;
private int mState; private int mState;
private int mPage; private int mPage;
private Handler mHandler;
@Override @Override
public void onAttached() { public void onAttached() {
...@@ -117,9 +123,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -117,9 +123,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
CustomDialog customDialog = new CustomDialog(AppManager.getInstance().currentActivity(), R.style.CustomDialog, "为了保证您的账号安全和用户安全,请您本人进行人脸识别操作", CustomDialog customDialog = new CustomDialog(AppManager.getInstance().currentActivity(), R.style.CustomDialog, "为了保证您的账号安全和用户安全,请您本人进行人脸识别操作",
(dialog, confirm) -> { (dialog, confirm) -> {
if (confirm) { if (confirm) {
Bundle bundle = new Bundle(); checkCachedLicense(order);
bundle.putSerializable(OrderConstant.ORDERS,order);
mView.startActivity(OrderLivenessActivity.class, bundle);
} }
}); });
customDialog.setTitle("人脸识别") customDialog.setTitle("人脸识别")
...@@ -136,4 +140,28 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -136,4 +140,28 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
mView.startActivity(OrderDetailsActivity.class, bundle); mView.startActivity(OrderDetailsActivity.class, bundle);
MobclickAgent.onEvent(BaseApplication.getContext(), "check_order_detail"); MobclickAgent.onEvent(BaseApplication.getContext(), "check_order_detail");
} }
public void checkCachedLicense(Order order) {
String uuid = ConUtil.getUUIDString(BaseApplication.getContext());
new Thread(() -> {
Manager manager = new Manager(BaseApplication.getContext());
LivenessLicenseManager licenseManager = new LivenessLicenseManager(BaseApplication.getContext());
manager.registerLicenseManager(licenseManager);
manager.takeLicenseFromNetwork(uuid);
if (licenseManager.checkCachedLicense() < 0) {
mHandler = new Handler(Looper.getMainLooper());
mHandler.post(() -> ToastUtils.showShortToast(getString(com.dayu.order.R.string.accredit_error)));
} else {
Bundle bundle = new Bundle();
bundle.putSerializable(OrderConstant.ORDERS, order);
mView.startActivity(OrderLivenessActivity.class, bundle);
}
}).start();
}
@Override
public void onDetached() {
super.onDetached();
mHandler = null;
}
} }
...@@ -32,7 +32,6 @@ import com.megvii.idcardlib.util.IMediaPlayer; ...@@ -32,7 +32,6 @@ import com.megvii.idcardlib.util.IMediaPlayer;
import com.megvii.idcardlib.util.Screen; import com.megvii.idcardlib.util.Screen;
import com.megvii.idcardlib.util.SensorUtil; import com.megvii.idcardlib.util.SensorUtil;
import com.megvii.idcardlib.view.CircleProgressBar; import com.megvii.idcardlib.view.CircleProgressBar;
import com.megvii.licensemanager.Manager;
import com.megvii.livenessdetection.DetectionConfig; import com.megvii.livenessdetection.DetectionConfig;
import com.megvii.livenessdetection.DetectionFrame; import com.megvii.livenessdetection.DetectionFrame;
import com.megvii.livenessdetection.Detector; import com.megvii.livenessdetection.Detector;
...@@ -41,7 +40,6 @@ import com.megvii.livenessdetection.Detector.DetectionListener; ...@@ -41,7 +40,6 @@ import com.megvii.livenessdetection.Detector.DetectionListener;
import com.megvii.livenessdetection.Detector.DetectionType; import com.megvii.livenessdetection.Detector.DetectionType;
import com.megvii.livenessdetection.FaceQualityManager; import com.megvii.livenessdetection.FaceQualityManager;
import com.megvii.livenessdetection.FaceQualityManager.FaceQualityErrorType; import com.megvii.livenessdetection.FaceQualityManager.FaceQualityErrorType;
import com.megvii.livenessdetection.LivenessLicenseManager;
import com.megvii.livenessdetection.bean.FaceIDDataStruct; import com.megvii.livenessdetection.bean.FaceIDDataStruct;
import com.megvii.livenessdetection.bean.FaceInfo; import com.megvii.livenessdetection.bean.FaceInfo;
...@@ -76,7 +74,6 @@ public class OrderLivenessActivity extends BaseActivity<OrderLivenessPresenter, ...@@ -76,7 +74,6 @@ public class OrderLivenessActivity extends BaseActivity<OrderLivenessPresenter,
private boolean isHandleStart;// 是否开始检测 private boolean isHandleStart;// 是否开始检测
private FaceQualityManager mFaceQualityManager; private FaceQualityManager mFaceQualityManager;
private SensorUtil sensorUtil; private SensorUtil sensorUtil;
private String uuid;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
...@@ -85,19 +82,8 @@ public class OrderLivenessActivity extends BaseActivity<OrderLivenessPresenter, ...@@ -85,19 +82,8 @@ public class OrderLivenessActivity extends BaseActivity<OrderLivenessPresenter,
@Override @Override
public void initView() { public void initView() {
uuid = ConUtil.getUUIDString(this);
new Thread(() -> {
Manager manager = new Manager(OrderLivenessActivity.this);
LivenessLicenseManager licenseManager = new LivenessLicenseManager(OrderLivenessActivity.this);
manager.registerLicenseManager(licenseManager);
manager.takeLicenseFromNetwork(uuid);
if (licenseManager.checkCachedLicense() < 0) {
runOnUiThread(() -> ToastUtils.showShortToast(getString(R.string.accredit_error)));
} else {
initData();
}
}).start();
init(); init();
initData();
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment