百度地圖報錯:do not agree with the privacy compliance policy. Please recheck the setAgreePrivacy interface

uniappx開發(fā)Android百度地圖插件時,報錯The location function has been stopped because you do not agree with the privacy compliance policy. Please recheck the setAgreePrivacy interface。
【安卓直接使用百度地圖同理,也是會報這個錯誤,解決方法是一樣的??!】
查詢官方文檔之后才發(fā)現(xiàn)再使用之前需要調用setAgreePrivacy

解決方案:為了進一步加強對最終用戶個人信息的安全保護措施,從定位SDK v9.2.9版本起,請開發(fā)者務必確保調用SDK任何接口前先調用隱私合規(guī)接口setAgreePrivacy,否則可能會無法正常使用相關功能。如下:

LocationClient.setAgreePrivacy(true);

我在uniappx中實現(xiàn)的方式是:

/**
 * 更多插件開發(fā)的信息詳見: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);
        //需要加上這句定位是同意隱私合規(guī)接口,否則定位時會報錯?。?!
        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);
            //當前應用是否 取得用戶同意隱私協(xié)議
            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中的實現(xiàn)【和原生安卓調用的api是一樣的】,如下:

/**
 * 更多插件開發(fā)的信息詳見: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任何接口前先調用更新隱私合規(guī)updatePrivacyShow、updatePrivacyAgree兩個接口并且參數(shù)值都為true,若未正確設置有崩潰風險
        AMapLocationClient.updatePrivacyShow(UTSAndroid.getAppContext()!, true, true);
        AMapLocationClient.updatePrivacyAgree(UTSAndroid.getAppContext()!, true);
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容