Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
7db96050
authored
Jul 17, 2018
by
罗翻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复人脸识别bug,增加定位服务
parent
a0869d63
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
162 additions
and
27 deletions
app/src/main/AndroidManifest.xml
app/src/main/java/com/dayu/bigfish/InitializeActivity.java
app/src/main/java/com/dayu/bigfish/MyApplication.java
app/src/main/java/com/dayu/bigfish/presenter/main/MainContract.java
app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
app/src/main/java/com/dayu/bigfish/ui/service/LocationService.java
baseSDK/src/main/java/com/dayu/common/BaseApplication.java
baseSDK/src/main/res/values/strings.xml
locationComponent/src/main/java/com/dayu/location/base/LocationUtils.java
orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderLivenessActivity.java
app/src/main/AndroidManifest.xml
View file @
7db96050
...
...
@@ -106,6 +106,9 @@
android:name=
"com.hyphenate.chat.EMJobService"
android:exported=
"true"
android:permission=
"android.permission.BIND_JOB_SERVICE"
/>
<service
android:name=
".ui.service.LocationService"
android:exported=
"true"
/>
<!-- 声明SDK所需的receiver -->
<receiver
android:name=
"com.hyphenate.chat.EMMonitorReceiver"
>
<intent-filter>
...
...
app/src/main/java/com/dayu/bigfish/InitializeActivity.java
View file @
7db96050
...
...
@@ -42,7 +42,8 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
public
void
initView
()
{
MobclickAgent
.
openActivityDurationTrack
(
false
);
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
()
{
@Override
...
...
app/src/main/java/com/dayu/bigfish/MyApplication.java
View file @
7db96050
package
com
.
dayu
.
bigfish
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
android.content.res.Configuration
;
import
android.content.res.Resources
;
...
...
@@ -8,6 +9,7 @@ import android.net.ConnectivityManager;
import
android.net.wifi.WifiManager
;
import
android.os.Handler
;
import
com.dayu.bigfish.ui.service.LocationService
;
import
com.dayu.bigfish.utils.HxManager
;
import
com.dayu.common.BaseApplication
;
import
com.dayu.common.Constants
;
...
...
@@ -80,7 +82,15 @@ public class MyApplication extends BaseApplication {
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
()
{
return
myApplication
;
...
...
app/src/main/java/com/dayu/bigfish/presenter/main/MainContract.java
View file @
7db96050
...
...
@@ -27,6 +27,8 @@ public interface MainContract {
void
showUpdateDialog
(
VersionInfo
info
);
void
initNotification
();
void
startLocaitonService
();
}
abstract
class
Presenter
extends
BasePresenter
<
View
>
{
...
...
app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
View file @
7db96050
...
...
@@ -27,6 +27,7 @@ import com.dayu.bigfish.databinding.ActivityMainBinding;
import
com.dayu.bigfish.presenter.main.MainContract
;
import
com.dayu.bigfish.presenter.main.MainPresenter
;
import
com.dayu.bigfish.ui.fragment.HomeFirstTabFragment
;
import
com.dayu.bigfish.ui.service.LocationService
;
import
com.dayu.common.Constants
;
import
com.dayu.event.DownloadBean
;
import
com.dayu.location.base.LocationUtils
;
...
...
@@ -37,6 +38,7 @@ import com.dayu.provider.event.RefreshReceivingNum;
import
com.dayu.provider.event.SwtichFragment
;
import
com.dayu.provider.router.RouterPath
;
import
com.dayu.usercenter.ui.fragment.HomePersonFragment
;
import
com.dayu.utils.UserManager
;
import
com.dayu.utils.badgeNumberManger.BadgeNumberManager
;
import
com.dayu.widgets.CustomDialog
;
import
com.dayu.widgets.listener.onDownloadListener
;
...
...
@@ -84,6 +86,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
addFragment
();
initListener
();
doAction
(
getIntent
());
startLocaitonService
();
EventBus
.
getDefault
().
register
(
this
);
}
...
...
@@ -230,6 +233,13 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
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传来的信息.
*
...
...
@@ -319,7 +329,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Subscribe
(
threadMode
=
ThreadMode
.
MAIN
)
public
void
onDownloadEvent
(
DownloadBean
event
)
{
int
progress
=
(
int
)
Math
.
round
(
event
.
getBytesReaded
()
/
(
double
)
event
.
getTotal
()
*
100
);
if
(
builder
==
null
)
{
if
(
builder
==
null
)
{
return
;
}
builder
.
setContentInfo
(
String
.
valueOf
(
progress
)
+
"%"
).
setProgress
(
100
,
progress
,
false
);
...
...
app/src/main/java/com/dayu/bigfish/ui/service/LocationService.java
0 → 100644
View file @
7db96050
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
;
}
}
baseSDK/src/main/java/com/dayu/common/BaseApplication.java
View file @
7db96050
...
...
@@ -41,6 +41,7 @@ public class BaseApplication extends MultiDexApplication {
}
private
class
SwitchBackgroundCallbacks
implements
Application
.
ActivityLifecycleCallbacks
{
int
count
=
0
;
@Override
public
void
onActivityCreated
(
Activity
activity
,
Bundle
bundle
)
{
...
...
@@ -49,7 +50,10 @@ public class BaseApplication extends MultiDexApplication {
@Override
public
void
onActivityStarted
(
Activity
activity
)
{
if
(
count
==
0
)
{
runFrontGround
();
}
count
++;
}
@Override
...
...
@@ -64,7 +68,10 @@ public class BaseApplication extends MultiDexApplication {
@Override
public
void
onActivityStopped
(
Activity
activity
)
{
count
--;
if
(
count
==
0
)
{
runBackGround
();
}
}
@Override
...
...
@@ -77,4 +84,17 @@ public class BaseApplication extends MultiDexApplication {
AppManager
.
getInstance
().
remove
(
activity
);
}
}
/**
* app切换到后台时回调.
*/
public
void
runBackGround
()
{
}
/**
* app切换到前台时回调.
*/
public
void
runFrontGround
()
{
}
}
baseSDK/src/main/res/values/strings.xml
View file @
7db96050
...
...
@@ -446,7 +446,7 @@
<string
name=
"certification_error"
>
联网授权失败!请检查网络或找服务商
</string>
<string
name=
"certification_getphoto_error"
>
获取相机权限失败
</string>
<string
name=
"next_step"
>
下一步
</string>
<string
name=
"accredit_error"
>
授权失败
</string>
<string
name=
"accredit_error"
>
人脸识别
授权失败
</string>
<string
name=
"certification_success"
>
认证成功
</string>
<string
name=
"certification_fail"
>
认证失败
</string>
<string
name=
"certification_again"
>
重新认证
</string>
...
...
locationComponent/src/main/java/com/dayu/location/base/LocationUtils.java
View file @
7db96050
...
...
@@ -5,13 +5,11 @@ import android.content.Context;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Handler
;
import
android.widget.Toast
;
import
com.amap.api.location.AMapLocation
;
import
com.amap.api.location.AMapLocationClient
;
import
com.amap.api.location.AMapLocationClientOption
;
import
com.amap.api.location.AMapLocationListener
;
import
com.dayu.location.R
;
import
java.io.File
;
...
...
@@ -145,7 +143,6 @@ public class LocationUtils {
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
mContext
.
startActivity
(
intent
);
}
else
{
Toast
.
makeText
(
mContext
,
R
.
string
.
install_gd_map
,
Toast
.
LENGTH_SHORT
).
show
();
goToMarket
(
mContext
,
"com.autonavi.minimap"
);
}
}
...
...
orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java
View file @
7db96050
...
...
@@ -2,6 +2,8 @@ package com.dayu.order.presenter.orderdoing;
import
android.databinding.ObservableField
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Looper
;
import
com.dayu.common.BaseApplication
;
import
com.dayu.common.Constants
;
...
...
@@ -15,8 +17,12 @@ import com.dayu.order.ui.activity.OrderLivenessActivity;
import
com.dayu.order.ui.fragment.OrderThreeTabFragment
;
import
com.dayu.provider.event.RefreshTab
;
import
com.dayu.utils.AppManager
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.UserManager
;
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
org.greenrobot.eventbus.EventBus
;
...
...
@@ -36,11 +42,11 @@ import static com.dayu.utils.UIUtils.getString;
*/
public
class
OrderDoingPresenter
extends
orderDoingContract
.
Presenter
{
private
ObservableField
<
Object
>
datas
=
new
ObservableField
<>();
private
static
final
int
PAGE_INTO_LIVENESS
=
100
;
private
int
mUserId
;
private
int
mSiteId
;
private
int
mState
;
private
int
mPage
;
private
Handler
mHandler
;
@Override
public
void
onAttached
()
{
...
...
@@ -117,9 +123,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
CustomDialog
customDialog
=
new
CustomDialog
(
AppManager
.
getInstance
().
currentActivity
(),
R
.
style
.
CustomDialog
,
"为了保证您的账号安全和用户安全,请您本人进行人脸识别操作"
,
(
dialog
,
confirm
)
->
{
if
(
confirm
)
{
Bundle
bundle
=
new
Bundle
();
bundle
.
putSerializable
(
OrderConstant
.
ORDERS
,
order
);
mView
.
startActivity
(
OrderLivenessActivity
.
class
,
bundle
);
checkCachedLicense
(
order
);
}
});
customDialog
.
setTitle
(
"人脸识别"
)
...
...
@@ -136,4 +140,28 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
mView
.
startActivity
(
OrderDetailsActivity
.
class
,
bundle
);
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
;
}
}
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderLivenessActivity.java
View file @
7db96050
...
...
@@ -32,7 +32,6 @@ import com.megvii.idcardlib.util.IMediaPlayer;
import
com.megvii.idcardlib.util.Screen
;
import
com.megvii.idcardlib.util.SensorUtil
;
import
com.megvii.idcardlib.view.CircleProgressBar
;
import
com.megvii.licensemanager.Manager
;
import
com.megvii.livenessdetection.DetectionConfig
;
import
com.megvii.livenessdetection.DetectionFrame
;
import
com.megvii.livenessdetection.Detector
;
...
...
@@ -41,7 +40,6 @@ import com.megvii.livenessdetection.Detector.DetectionListener;
import
com.megvii.livenessdetection.Detector.DetectionType
;
import
com.megvii.livenessdetection.FaceQualityManager
;
import
com.megvii.livenessdetection.FaceQualityManager.FaceQualityErrorType
;
import
com.megvii.livenessdetection.LivenessLicenseManager
;
import
com.megvii.livenessdetection.bean.FaceIDDataStruct
;
import
com.megvii.livenessdetection.bean.FaceInfo
;
...
...
@@ -76,7 +74,6 @@ public class OrderLivenessActivity extends BaseActivity<OrderLivenessPresenter,
private
boolean
isHandleStart
;
// 是否开始检测
private
FaceQualityManager
mFaceQualityManager
;
private
SensorUtil
sensorUtil
;
private
String
uuid
;
@Override
public
int
getLayoutId
()
{
...
...
@@ -85,19 +82,8 @@ public class OrderLivenessActivity extends BaseActivity<OrderLivenessPresenter,
@Override
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
();
initData
();
}
@Override
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment