Android Studio 很貼心的提供我們 GoogleMap Activity 的模組
我們只需要透過 New -> Activity -> Gallery 裡面選擇 Google Map 的選項就可以了。
這裡甚至幫你把 uses-permission 都幫你設定完成,你就不用再到 AndroidManifest 裡設定了。
建立完後,我們到 res -> values 內的 google_maps_api.xml 裡面設定 google_maps_key 。
這份檔案內有提供 google console 連結,在 console 內取得驗證碼後再貼回檔案內指定位置就可以囉。
我們希望在使用者按下按鈕後確認使用者是否有給予權限,如果沒有給予權限,則請求權限。
MainActivity.kt
private fun setupPermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 101)
} else {
showMyLocation()
}
}
從下方的官方文件文檔中我們可以看到判斷是否有權限的作法,以及如何向使用者申請權限。
要特別注意的是 ActivtiyCompat.requestPermissions 裡面的第三個參數是指 requestCode 可以是任意自訂的數。
以方便後面 Callback function 使用。
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
if (requestCode == 101) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
showMyLocation()
}else{
Toast.makeText(this, "need your permission", Toast.LENGTH_SHORT).show()
}
}
}
這裡我們就可以看到,我們需要確認使用者是不是同意給予權限,並在確認給予權限後我們就可以 showLoaction 。
那我們今天就先到這裡囉,我們明天見~~