ShareSDK扩展功能业务设置 原创
ShareSDK扩展业务功能设置
1、扩展业务说明
ShareSDK提供的扩展业务功能为:
- (1)通过进行地理维度的统计以实现更为精细化的运营;
- (2)生成脱敏的终端用户设备唯一性标识;
- (3)实现网络链路的选择与优化、检测并实现与特定区域相关的服务;
- ==(4)合并链路服务。 #F44336==
ShareSDK为开发者提供退出上述功能的接口,开发者可以调用接口,向最终用户提供退出的能力。最终用户退出上述功能后,ShareSDK依然可以为您终端用户提供第三方登录和社会化分享。开发者需遵守相关法律法规的要求,在App内为最终用户提供退出上述扩展业务的功能,并保证在最终用户点击退出功能后能正常调用ShareSDK的能力接口。
2、配置方法
应用若需要控制ShareSDK扩展业务功能进行配置,只需要基于App数据采集主动控制器
对这些功能所依赖之数据项进行配置即可。操作方法如下:
2-1、针对特定区域群体的设备安全检测
此功能依赖数据项包括:地理位置信息。MobCustomController
类中与之对应的开关和数据回传方法列表如下:
/**
* 判断是否允许SDK主动采集经纬度信息,用于发送定位信息,以及实现闭环分享功能的来源追溯及地理维度的统计以帮助实现更精细化运营
*
* @return
public boolean isLocationDataEnable(){
return true;
}
/**
* 当SDK被拒绝自行采集经纬度信息后,会通过此方法向App请求经纬度数据
*
* @return
public Location getLocation(){
return null;
}
- 当上述数据开关接口返回 true 时,ShareSDK 被允许自行获取相应数据;
- 当上述开关接口返回 false 时,ShareSDK 被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。
2-2、生成脱敏的终端用户设备唯一性标识
此功能依赖数据项包括:设备标识信息。MobCustomController
类中与之对应的开关和数据回传方法列表如下:
/**
* 用于判断是否允许SDK主动采集OAID信息,用于生成脱敏的终端用户设备唯一性标识
*
* @return true表示SDK可以自行采集OAID信息,false表示不可以,默认为true
*/
public boolean isOaidEnable(){
return true;
}
/**
* 用于判断是否允许SDK主动采集OAID信息,用于生成脱敏的终端用户设备唯一性标识
*
* @return true表示SDK可以自行采集OAID信息,false表示不可以,默认为true
*/
public boolean isAdvertisingIdEnable(){
return true;
}
/**
* 用于判断是否允许SDK主动采集Android ID信息,用于生成脱敏的终端用户设备唯一性标识
*
* @return true表示SDK可以自行采集Android ID信息,false表示不可以,默认为true
*/
public boolean isAndroidIdEnable(){
return true;
}
/**
* 当SDK被拒绝自行采集OAID信息后,会通过此方法向App请求OAID
*
* @return OAID,如果返回null则表示不提供OAID信息
*/
public String getOaid(){
return null;
}
/**
* 当SDK被拒绝自行采集Advertising Id后,会通过此方法向App请求Advertising Id
*
* @return Advertising Id,如果返回null则表示不提供经纬度信息
*/
public String getAdvertisingId(){
return null;
}
/**
* 当SDK被拒绝自行采集Android ID后,会通过此方法向App请求Android ID
*
* @return Android ID,如果返回null则表示不提供Android ID信息
*/
public String getAndroidId(){
return
- 当上述数据开关接口返回 true 时,ShareSDK 被允许自行获取相应数据;
- 当上述开关接口返回 false 时,ShareSDK 被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。
2-3、实现网络链路的选择与优化、检测并实现与特定区域相关的服务
此功能依赖数据项包括:网络状态信息。MobCustomController
类中与之对应的开关和数据回传方法列表如下:
/**
* 用于判断是否允许SDK主动采集WIFI信息,用于实现网络链路的选择与优化,确保稳定地提供ShareSDK产品和/或服务,以及为了检测并实现与特定区域相关的服务
*
* @return
public boolean isWifiDataEnable() {
return true;
}
/**
* 用于判断是否允许SDK主动采集基站信息,用于实现网络链路的选择与优化,确保稳定地提供ShareSDK产品和/或服务,以及为了检测并实现与特定区域相关的服务
*
* @return
public boolean isCellLocationDataEnable() {
return true;
}
/**
* 用于判断是否允许SDK主动采集本地IP信息,用于实现网络链路的选择与优化,确保稳定地提供ShareSDK产品和/或服务,以及为了检测并实现与特定区域相关的服务
*
* @return
public boolean isIpAddressEnable() {
return true;
}
/**
* 当SDK被拒绝自行采集WIFI信息后,会通过此方法向App请求WIFI数据
*
* @return
public WifiInfo getConnectionInfo() {
return null;
}
/**
* 当SDK被拒绝自行采集WIFI信息后,会通过此方法向App请求WIFI列表
*
* @return
public List<ScanResult> getWifiScanResults() {
return null;
}
/**
* 当SDK被拒绝自行采集基站信息后,会通过此方法向App请求基站数据
*
* @return
public CellLocation getCellLocation() {
return null;
}
/**
* 当SDK被拒绝自行采集基站信息后,会通过此方法向App请求邻区基站数据
*
* @return
public List<NeighboringCellInfo> getNeighboringCellInfo() {
return null;
}
/**
* 当SDK被拒绝自行采集本地IP(v4)信息后,会通过此方法向App请求本地IP(v4)数据
*
* @return
public String getIpAddress() {
return null;
}
/**
* 当SDK被拒绝自行采集蜂窝网络ipv4信息后,会通过此方法向App请求蜂窝网络ipv4数据
*
* @return
public String getCellIpv4() {
return null;
}
/**
* 当SDK被拒绝自行采集蜂窝网络ipv6信息后,会通过此方法向App请求蜂窝网络ipv6数据
*
* @return
public String getCellIpv6() {
return null;
}
- 当上述数据开关接口返回 true 时,ShareSDK 被允许自行获取相应数据;
- 当上述开关接口返回 false 时,ShareSDK 被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。
==2-4、合并链路服务 #F44336==
==此功能依赖数据项包括:应用列表信息。MobCustomController
类中与之对应的开关和数据回传方法列表如下: #F44336==
/**
* 用于判断是否允许SDK主动采集在装信息,用于提供合并链路技术
*
* @return
public boolean isAppListDataEnable() {
return true;
}
/**
* 当SDK被拒绝自行采集在装信息后,会通过此方法向App请求在装数据
*
* @return
public List<PackageInfo> getPackageInfos() {
return null;
}
- ==当上述数据开关接口返回 true 时,MobPush被允许自行获取相应数据; #F44336==
- ==当上述开关接口返回 false 时,MobPush被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。 #F44336==
==由于ShareSDK的分享也需要获取应用列表信息,故建议App接管应用列表信息采集后,通过getPackageInfos()
返回分享操作目标平台App的应用信息,否则会影响ShareSDK的分享功能。 #F44336==
2-==5 #F44336==、其它配置
其它App数据采集主动控制器
的配置方法,可参考:https://www.mob.com/wiki/detailed?wiki=664&id=714
3、接入方法
3-1、继承MobCustomController,重写内部成员方法
示例代码:
public class MyCustomController extends MobCustomController{
@Override
public boolean isLocationDataEnable(){
return false;
}
@Override
public boolean isAppListDataEnable(){
return true;
}
// ...视情况重写其他数据开关接口
@Override
public Location getLocation(){
// 返回应用获取的包含经纬度信息的Location对象
return CustomControllerDataKit.getInstance().getLocationNetwork();
}
@Override
public List<PackageInfo> getPackageInfos(){
// 返回应用获取的在装列表信息
return CustomControllerDataKit.getInstance().getPackageInfos();
}
// ...视情况重写其他数据回传接口
3-2、通过隐私提交接口设置 MobCustomController 实例
MobSDK.submitPolicyGrantResult(new, true);
注意:通过隐私提交接口设置 MobCustomController 实例时,必须每次启动 APP 时,均调用该接口进行设置。若您的 APP 并非每次启动都会调用隐私提交接口,也可以通过 MobSDK.updateMobCustomController()
接口进行设置。
3-3、(可选)通过 updateMobCustomController() 接口设置 MobCustomController 实例
MobSDK.updateMobCustomController(new);
updateMobCustomController()接口调用时机说明:
- 建议在应用启动时尽快调用该接口,比如Application.onCreate()中
- 该接口必须每次启动都调用