在导航抽屉活动内部,我已经使用卫星视图和位置实现了Google地图。它与三星galaxy s-4(果冻豆5.0.1)配合使用,但是如果你在Marshmallow(6.0.1)上运行,它只是打开的地图(没有显示位置而没有显示卫星视图)
以下是活动代码
public class NavigationDrawerPeaceNow extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation_drawer_peace_now);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//---------------Setting up map-----------//
((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
if (ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
LatLng israel = new LatLng(31.0461, 34.8516);
map.addMarker(new MarkerOptions().position(israel).title("israel"));
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
CameraPosition camPos = new CameraPosition.Builder().target(new LatLng(31.0461, 34.8516)).zoom(8).tilt(70).build();
CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
googleMap.animateCamera(camUpd3);
}
});
我尝试在谷歌搜索,但解决方案可用于" satelliteview"不适合这种情况。 我是android的新手
提前致谢
答案 0 :(得分:0)
问题出在:
if (ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
条件:如果未授予一个或两个权限,则执行return
。尝试为您的应用授予(例如在“应用程序”菜单中)ACCESS_FINE_LOCATION
和ACCESS_COARSE_LOCATION
权限,或将条件更改为:
if (ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
LatLng israel = new LatLng(31.0461, 34.8516);
map.addMarker(new MarkerOptions().position(israel).title("israel"));
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
CameraPosition camPos = new CameraPosition.Builder().target(new LatLng(31.0461, 34.8516)).zoom(8).tilt(70).build();
CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
googleMap.animateCamera(camUpd3);;
}
或者类似的东西,如果你想在获得一个许可的情况下继续。 (可能是三星galaxy s-4(果冻豆5.0.1)上的一切都很好,可能是因为您之前授予了权限并且没有卸载应用程序)。