百度地圖定位的幾個問題

百度地圖定位的幾個問題

開發環境:win10 64位,android Studio,小米4c Android7.0

定位到大西洋的幾內亞灣

  • 經緯度定位是4.9E-324,在網上查了很多資料,是什麼so文件不齊啊,key的問題啊,我把所有的so文件以及jar包加進去,還是定位失敗。
  • 解決辦法:在軟件的授權管理中一看,允許定位這一條默認的是詢問,然後我切換爲允許後就成功了。
  • 關於Android 6.0及以上系統不會自動的彈出定位授權提醒,需要在代碼中手動請求
    一、在 AndroidManifest.xml 文件中加入
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
二、在程序運行的時候進行設置
private static final int REQUEST_CODE_ACCESS_COARSE_LOCATION = 1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//如果 API level 是大於等於 23(Android 6.0) 時
    //判斷是否具有權限
    if (ContextCompat.checkSelfPermission(this,
            Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        //判斷是否需要向用戶解釋爲什麼需要申請該權限
        if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.ACCESS_COARSE_LOCATION)) {
 Toast.makeText(this, "自Android 6.0開始需要打開位置權限", Toast.LENGTH_SHORT).show();
        }
        //請求權限
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                REQUEST_CODE_ACCESS_COARSE_LOCATION);
    }
}
三、執行完上面的請求權限後,系統會自動彈出提示框讓用戶選擇是否允許改權限。
選擇的結果可以在下面方法中獲取:
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == REQUEST_CODE_ACCESS_COARSE_LOCATION) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            //用戶允許改權限,0表示允許,-1表示拒絕 PERMISSION_GRANTED = 0, PERMISSION_DENIED = -1
            //permission was granted, yay! Do the contacts-related task you need to do.
            //這裏進行授權被允許的處理
        } else {
            //permission denied, boo! Disable the functionality that depends on this permission.
            //這裏進行權限被拒絕的處理
        }
    } else {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}

如果這樣寫還沒有反應,那就檢查下自己手機的定位是不是沒有打開。

不顯示百度地圖,只顯示網格

1、申請API_KEY的時候是否填寫了正確的包名+SHA1值
API_KEY申請地址:http://lbsyun.baidu.com/apiconsole/key/create
配置教程地址:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key
個人感覺地圖只顯示網格的原因主要就是API_KEY的問題,我曾經把KEY值ctrl+V到AndroidManifest中粘錯了。還有就是現在的SHA1值分開發版和發佈版兩種,發佈版爲必填。建議開發的時候兩者都填上,要不然很麻煩。
關於配置工程及獲取SHA1:http://blog.csdn.net/chentravelling/article/details/50995524
最後別忘了在application中配

 <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="kGRq0WKvm1AvvbsW7UddQy6Ra84YfF8G"/>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章