Java 基本谷歌地图安卓,2个小错误和权限
尊敬的社区,我正在学习ANDROID中的谷歌地图集成,并且已经了解了很多东西,有权限,以及使用最新的GoogleAppAvailability,但仍然面临2个错误,我无法解决。我得到Java 基本谷歌地图安卓,2个小错误和权限,java,android,google-maps,android-studio,google-maps-api-3,Java,Android,Google Maps,Android Studio,Google Maps Api 3,尊敬的社区,我正在学习ANDROID中的谷歌地图集成,并且已经了解了很多东西,有权限,以及使用最新的GoogleAppAvailability,但仍然面临2个错误,我无法解决。我得到无法解析方法isUserRecoverableError(int)和非静态方法getErrorDialog无法从代码末尾的静态上下文引用处的公共布尔服务sok()方法。 以下是Java代码:(如果还需要什么,请告诉我,这样我就可以正确地使用Android谷歌地图概念:)) isUserRecoverableError
无法解析方法isUserRecoverableError(int)
和非静态方法getErrorDialog无法从代码末尾的静态上下文引用处的公共布尔服务sok()
方法。
以下是Java代码:(如果还需要什么,请告诉我,这样我就可以正确地使用Android谷歌地图概念:))
isUserRecoverableError
方法来自非源于GoogleAppAvailability
。但正如您在文档中看到的,此方法已被弃用,您现在应该改用GoogleApiAvailability.getInstance().isUserResolvableError()
对于第二个错误,您试图访问getErrorDialog
,但它不是静态方法。你应该改为GoogleApiAvailability.getInstance().getErrorDialog
。getInstance()对我来说就像一个魔咒。非常感谢您澄清我的概念,先生:)
package com.example.testmap;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private static final int ERROR_DIALOG_REQUEST = 9901;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
if(ServicesOK()) {
Toast.makeText(this, "Can't connect to mapping services", Toast.LENGTH_SHORT).show();}
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
GoogleMap mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
public boolean ServicesOK(){
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int isAvailable = googleApiAvailability.isGooglePlayServicesAvailable(this);
if(isAvailable== ConnectionResult.SUCCESS){
return true;
}
else if(GoogleApiAvailability.isUserRecoverableError(isAvailable)){
Dialog dialog;
dialog= GoogleApiAvailability.getErrorDialog(isAvailable, this, ERROR_DIALOG_REQUEST);
dialog.show();
}
else{
Toast.makeText(this, "Can't connect to mapping services", Toast.LENGTH_SHORT).show();
}
return false;
}
}