@yeahugo
2019-01-21T06:31:32.000000Z
字数 2309
阅读 670
SDK是T1Plus-Android的简写,作用是为用户提供一套完善的生成水印视图、控制水印视图的显示和隐藏以及销毁水印视图的功能。
生成水印图的SDK不通版本支持不同的生成规则,下面会介绍具体使用方法。
在您阅读此文档时,我们假定您已经具备了基础的android应用开发经验,并能理解相关的基础概念,SDK支持android4.4及以上的android版本。
导入SDK
将SDK放入项目libs包下
配置build文件
repositories {flatDir {dirs 'libs'}}
implementation(name: 'screenhunter-release-1.0', ext: 'aar')
配置权限文件
<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
接口总览
SDK在使用前必须得申请如下的权限:
Manifest.permission.READ_PHONE_STATE,Manifest.permission.ACCESS_NETWORK_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE
SDK总共有四个接口,具体接口及功能如下
FloatWindow.initShadow(host, port, traceOriginId, mContext);
用来初始化水印,全局只用初始化一次,具体调用如下
int initStatus = FloatWindow.initShadow(host, port, traceOriginId, this);
FloatWindow.showShadow(mContext);
用户无需判断水印视图是否存在,调用此接口只会显示一层水印视图。建议在baseActivity的onResume()方法中调用,每隔两分钟调用一次。具体如下
@Overrideprotected void onResume() {super.onResume();showThisShaow(this);}protected void showThisShaow(Activity context) {if (timer == null) {timer = new Timer();}if (task == null) {task = new TimerTask() {@Overridepublic void run() {context.runOnUiThread(() -> {int result = FloatWindow.showShadow(context);dealResult(result);});}};}timer.schedule(task, 0, 120000);//为了更方便得到精确的数据,应该每两分钟刷新一下
FloatWindow.hideShadow()
用户无需判断水印是否隐藏,调用此接口即可影藏水印视图。建议在baseActivity的onStop中调用,调用前需要判断是否是在前台。具体如下
protected void hideThisShadow() {if (timer != null) {timer.cancel();timer.purge();timer = null;}if (task != null) {task.cancel();task = null;}FloatWindow.hideShadow();}
FloatWindow.closeShadow(mContext)
用户重新初始化SDK生成水印视图前调用销毁接口,避免反复初始化导致内存消耗增长。该接口一定要确保在MainActivity(该activity结束的时候,退出整个应用,且该activity的launchMode一定要为singleTask)的onDestroy方法中调用,具体如下
@Overrideprotected void onDestroy() {super.onDestroy();//关闭窗口FloatWindow.closeShadow(this);//在退出当前应用的时候调用,一定要保证当前类在全局只有一个页面栈,用singleTask标记}