Маркеры карты не отображаются в Картах Google, когда приложение android развернуто в playstore - PullRequest
1 голос
/ 10 апреля 2020

У меня странная проблема, когда у меня есть приложение android, которое использует карту Google для отображения маркеров мест на карте Google. Местоположения поступают из API через мои веб-сайты, а затем приложение отображает точки на карте. Это прекрасно работает при запуске из android в студию на виртуальные и физические устройства, но приложение разворачивается для воспроизведения в магазине. Я не уверен почему. Изображение ниже показывает его на физическом устройстве и виртуальном устройстве.

Physical Device with markers not showing up

Изображение с виртуальным устройством с маркерами, отображаемыми на карте

Image with a virtual device with markers showing on map

Код активности карт Google

    package kryptic.kode.diseaseprediction.ui

import android.Manifest
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
import android.os.Looper
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import com.google.android.gms.ads.AdListener
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.InterstitialAd
import com.google.android.gms.ads.MobileAds
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationServices
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import kryptic.kode.diseaseprediction.R
import kryptic.kode.diseaseprediction.databinding.ActivityMapsBinding
import kryptic.kode.diseaseprediction.maps.LocationHelper

class MapsActivity : AppCompatActivity(), OnMapReadyCallback {

    //binding
    private lateinit var binding: ActivityMapsBinding

    lateinit var mGoogleMap: GoogleMap
    lateinit var locationHelper: LocationHelper
    var mapFrag: SupportMapFragment? = null
    var mFusedLocationClient: FusedLocationProviderClient? = null
    private lateinit var mInterstitialAd: InterstitialAd

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //setContentView(R.layout.activity_maps)
        binding = ActivityMapsBinding.inflate(layoutInflater)
        setContentView(binding.root)
        MobileAds.initialize(this)

        /*load Ads */
        mInterstitialAd = InterstitialAd(this)
        mInterstitialAd.adUnitId = getString(R.string.interstitial_ads)
        mInterstitialAd.adListener = object : AdListener() {
            override fun onAdClosed() {
                mInterstitialAd.loadAd(AdRequest.Builder().build())
            }
        }
        mInterstitialAd.loadAd(AdRequest.Builder().build())
        if (mInterstitialAd.isLoaded) {
            mInterstitialAd.show()
        } else {
            Log.d("TAG", "The interstitial wasn't loaded yet.")
        }
        /*end Load ads*/

        supportActionBar?.title = "Doctors Near By"
        mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
        mapFrag = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
        mapFrag?.getMapAsync(this)
    }

    public override fun onPause() {
        super.onPause()

        //stop location updates when Activity is no longer active
        mFusedLocationClient?.removeLocationUpdates(locationHelper.mLocationCallback)
    }

    override fun onMapReady(googleMap: GoogleMap) {
        //ads
        mInterstitialAd.loadAd(AdRequest.Builder().build())
        if (mInterstitialAd.isLoaded) {
            mInterstitialAd.show()
        } else {
            Log.d("TAG", "The interstitial wasn't loaded yet.")
        }

        mGoogleMap = googleMap
        mGoogleMap.mapType = GoogleMap.MAP_TYPE_NORMAL
        this.locationHelper = LocationHelper(this, mGoogleMap,getString(R.string.google_place_key))


        //Check the build version to enable certain features
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
                //Location Permission already granted
                mFusedLocationClient?.requestLocationUpdates(
                    locationHelper.mLocationRequest,
                    locationHelper.mLocationCallback,
                    Looper.myLooper()
                )
                mGoogleMap.isMyLocationEnabled = true

            } else {
                //Request Location Permission
                //checkLocationPermission()
                locationHelper.checkLocationPermission()

            }
        } else {
            mFusedLocationClient?.requestLocationUpdates(
                locationHelper.mLocationRequest,
                locationHelper.mLocationCallback,
                Looper.myLooper()
            )
            mGoogleMap.isMyLocationEnabled = true
        }

    }


    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {

        when (requestCode) {
            MY_PERMISSIONS_REQUEST_LOCATION -> {
                // If request is cancelled, the result arrays are empty.
                if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                    // permission was granted, yay! Do the
                    // location-related task you need to do.
                    if (ContextCompat.checkSelfPermission(
                            this,
                            Manifest.permission.ACCESS_FINE_LOCATION
                        ) == PackageManager.PERMISSION_GRANTED
                    ) {

                        mFusedLocationClient?.requestLocationUpdates(
                            locationHelper.mLocationRequest,
                            locationHelper.mLocationCallback,
                            Looper.myLooper()
                        )
                        mGoogleMap.setMyLocationEnabled(true)
                    }

                } else {

                    // permission denied, boo! Disable the
                    // functionality that depends on this permission.
                    Toast.makeText(this, "permission denied", Toast.LENGTH_LONG).show()
                }
                return
            }
        }// other 'case' lines to check for other
        // permissions this app might request
    }

    companion object {
        val MY_PERMISSIONS_REQUEST_LOCATION = 99
    }
}

Есть идеи, почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...