как отобразить карту Google в моем приложении

#android #google-maps

#Android #google-карты

Вопрос:

Я хочу отобразить карту Google в своем приложении. Я получил ключ map api и использую его в своем xml файле, но карта Google не отображается, при запуске приложения отображаются только прямоугольные блоки. Как я могу отобразить карту Google в моем приложении?

Класс активности — это:

 public class ShowMap extends MapActivity {

    private MapController mapController;
    private MapView mapView;
    private LocationManager locationManager;

    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.main); // bind the layout to the activity

        // create a map view
        RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.mainlayout);
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
        mapView.setStreetView(true);
        mapController = mapView.getController();
        mapController.setZoom(14); // Zoon 1 is world view
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
                0, new GeoUpdateHandler());
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }

    public class GeoUpdateHandler implements LocationListener {

        @Override
        public void onLocationChanged(Location location) {
            int lat = (int) (location.getLatitude() * 1E6);
            int lng = (int) (location.getLongitude() * 1E6);
            GeoPoint point = new GeoPoint(lat, lng);
            mapController.animateTo(point); //  mapController.setCenter(point);
        }

        @Override
        public void onProviderDisabled(String provider) {
        }

        @Override
        public void onProviderEnabled(String provider) {
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
    }
  

и layout/main.xml это

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/mainlayout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.google.android.maps.MapView
        android:id="@ id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:enabled="true"
        android:apiKey="0mT--u1GbHdhnBJgPZU8zhoF2e4qdpCag32e7lQ"    />

</RelativeLayout>
  

Комментарии:

1. Код выглядит нормально. Вы уверены, что ключ API правильный?

Ответ №1:

Я думаю, вы использовали ключ отладки. Вместо этого используйте ключ разблокировки с помощью:

 keytool -list -keystore filename.keystore
  

Для получения более подробной информации ознакомьтесь с этим

Комментарии:

1. как использовать «keytool -list -keystore filename.keystore» на самом деле я новичок в Java и Android, поэтому, пожалуйста, объясните кратко, пожалуйста, пожалуйста…

2. Создали ли вы хранилище ключей вашего приложения. Создайте файл .bat (создайте новый файл, скажем, shell.bat, отредактируйте его и напишите в нем cmd, затем сохраните, теперь закройте его, дважды щелкните по нему. Откроется командная строка в этом месте) в том же месте, где находится ваш файл хранилища ключей, затем введите приведенную выше строку в этой командной строке. Затем выполните тот же процесс, что и для генерации ключа отладки. Попробуйте это.