百度地图报错:do not agree with the privacy compliance policy. Please recheck the setAgreePrivacy interface

uniappx开发Android百度地图插件时,报错The location function has been stopped because you do not agree with the privacy compliance policy. Please recheck the setAgreePrivacy interface。
【安卓直接使用百度地图同理,也是会报这个错误,解决方法是一样的!!】
查询官方文档之后才发现再使用之前需要调用setAgreePrivacy

解决方案:为了进一步加强对最终用户个人信息的安全保护措施,从定位SDK v9.2.9版本起,请开发者务必确保调用SDK任何接口前先调用隐私合规接口setAgreePrivacy,否则可能会无法正常使用相关功能。如下:

LocationClient.setAgreePrivacy(true);

我在uniappx中实现的方式是:

/**
 * 更多插件开发的信息详见:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
 */
export class AppHookProxy implements UTSAndroidHookProxy {
    override onCreate(application : Application) {
        // java 
        // 是否同意隐私政策,默认为false,但是必须设为true
        SDKInitializer.setAgreePrivacy(UTSAndroid.getAppContext(), true);
        //需要加上这句定位是同意隐私合规接口,否则定位时会报错!!!
        LocationClient.setAgreePrivacy(true);
        UTSAndroid.setPrivacyAgree(true)
        try {
            // 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
            SDKInitializer.initialize(UTSAndroid.getAppContext());
            //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
            //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
            SDKInitializer.setCoordType(CoordType.BD09LL);
            //当前应用是否 取得用户同意隐私协议
            if (UTSAndroid.isPrivacyAgree()) {
                //onCreate 初始化三方SDK
                console.log("AppHookProxy--onCreate---isPrivacyAgree")
                Log.e("AppHookProxy", "AppHookProxy--onCreate---isPrivacyAgree")
            }
        } catch (e : BaiduMapSDKException) {
            console.log("AppHookProxy BaiduMapSDKException", e)
        }

    }
}

同理,高德地图也需要设置,我这里只举出uniappx中的实现【和原生安卓调用的api是一样的】,如下:

/**
 * 更多插件开发的信息详见:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
 */
export class AppHookProxy implements UTSAndroidHookProxy {
    override onCreate(application : Application) {
        console.log("GDAppHookProxy", "AppHookProxy--onCreate---", UTSAndroid.isPrivacyAgree())
        // 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updatePrivacyAgree两个接口并且参数值都为true,若未正确设置有崩溃风险
        AMapLocationClient.updatePrivacyShow(UTSAndroid.getAppContext()!, true, true);
        AMapLocationClient.updatePrivacyAgree(UTSAndroid.getAppContext()!, true);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容