Java 全球定位系统地图不知道
我正在做一个应用程序gps来定位我在地图上的位置,所以我用的是安卓8.1版的手机,它安装在我的手机上没有问题,买的时候不要给我看地图 锁定,就像在我的手机中显示的那样: 这是我的build.gradle(模块应用程序) 这是我的activity_main.xmlJava 全球定位系统地图不知道,java,android,xml,google-maps,android-gps,Java,Android,Xml,Google Maps,Android Gps,我正在做一个应用程序gps来定位我在地图上的位置,所以我用的是安卓8.1版的手机,它安装在我的手机上没有问题,买的时候不要给我看地图 锁定,就像在我的手机中显示的那样: 这是我的build.gradle(模块应用程序) 这是我的activity_main.xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://sc
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvMensaje"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginRight="8dp"
android:text="Ubicacion"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<fragment
android:id="@+id/fragment"
android:name="com.example.ejemplogpsmaps.FragmentMaps"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvMensaje" />
</android.support.constraint.ConstraintLayout>
thid AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ejemplogpsmaps">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="UNY GPS"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="I hide my key" />
</application>
</manifest>
这是localizacion.java
package com.example.ejemplogpsmaps;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationProvider;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.widget.TextView;
public class Localizacion implements LocationListener {
MainActivity mainActivity;
TextView tvMensaje;
public MainActivity getMainActivity() {
return mainActivity;
}
public void setMainActivity(MainActivity mainActivity, TextView tvMensaje) {
this.mainActivity = mainActivity;
this.tvMensaje = tvMensaje;
}
@Override
public void onLocationChanged(Location location) {
// Este metodo se ejecuta cuando el GPS recibe nuevas coordenadas
String texto = "Mi ubicación es: \n"
+ "Latitud = " + location.getLatitude() + "\n"
+ "Longitud = " + location.getLongitude();
tvMensaje.setText(texto);
mapa(location.getLatitude(), location.getLongitude());
}
public void mapa(double lat, double lon) {
// Fragment del Mapa
FragmentMaps fragment = new FragmentMaps();
Bundle bundle = new Bundle();
bundle.putDouble("lat", new Double(lat));
bundle.putDouble("lon", new Double(lon));
fragment.setArguments(bundle);
FragmentManager fragmentManager = getMainActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment, fragment, null);
fragmentTransaction.commit();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE:
Log.d("debug", "LocationProvider.AVAILABLE");
break;
case LocationProvider.OUT_OF_SERVICE:
Log.d("debug", "LocationProvider.OUT_OF_SERVICE");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
Log.d("debug", "LocationProvider.TEMPORARILY_UNAVAILABLE");
break;
}
}
@Override
public void onProviderEnabled(String provider) {
tvMensaje.setText("GPS Activado");
}
@Override
public void onProviderDisabled(String provider) {
tvMensaje.setText("GPS Desactivado");
}
}
所以,我创建了这个项目,比如谷歌地图活动和添加
访问AndroidManifest.xml中精细位置的权限
因此,您可以帮助我,我不了解解决方案正在更改API_密钥,我创建了一个新密钥并粘贴到此处:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="NEW_API_key" />
解决方案正在更改API_密钥,我创建了一个新密钥并粘贴到此处:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="NEW_API_key" />
首先,让我们排除基本问题。您的项目是否启用了计费功能?Android版地图SDK也启用了吗?你的API密钥被正确限制了吗?嗨,你好!我找到了解决方案,它正在更改API_密钥,并且可以正常工作!谢谢你的更新,很高兴听到!请考虑回答你自己的问题,并为社会的利益而接受。首先,让我们排除基本问题。您的项目是否启用了计费功能?Android版地图SDK也启用了吗?你的API密钥被正确限制了吗?嗨,你好!我找到了解决方案,它正在更改API_密钥,并且可以正常工作!谢谢你的更新,很高兴听到!请考虑回答你自己的问题,并为社会的利益而接受。
package com.example.ejemplogpsmaps;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationProvider;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.widget.TextView;
public class Localizacion implements LocationListener {
MainActivity mainActivity;
TextView tvMensaje;
public MainActivity getMainActivity() {
return mainActivity;
}
public void setMainActivity(MainActivity mainActivity, TextView tvMensaje) {
this.mainActivity = mainActivity;
this.tvMensaje = tvMensaje;
}
@Override
public void onLocationChanged(Location location) {
// Este metodo se ejecuta cuando el GPS recibe nuevas coordenadas
String texto = "Mi ubicación es: \n"
+ "Latitud = " + location.getLatitude() + "\n"
+ "Longitud = " + location.getLongitude();
tvMensaje.setText(texto);
mapa(location.getLatitude(), location.getLongitude());
}
public void mapa(double lat, double lon) {
// Fragment del Mapa
FragmentMaps fragment = new FragmentMaps();
Bundle bundle = new Bundle();
bundle.putDouble("lat", new Double(lat));
bundle.putDouble("lon", new Double(lon));
fragment.setArguments(bundle);
FragmentManager fragmentManager = getMainActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment, fragment, null);
fragmentTransaction.commit();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE:
Log.d("debug", "LocationProvider.AVAILABLE");
break;
case LocationProvider.OUT_OF_SERVICE:
Log.d("debug", "LocationProvider.OUT_OF_SERVICE");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
Log.d("debug", "LocationProvider.TEMPORARILY_UNAVAILABLE");
break;
}
}
@Override
public void onProviderEnabled(String provider) {
tvMensaje.setText("GPS Activado");
}
@Override
public void onProviderDisabled(String provider) {
tvMensaje.setText("GPS Desactivado");
}
}
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="NEW_API_key" />