【发布时间】:2018-04-12 00:12:42
【问题描述】:
我想在我的 Android Studio 项目中实现我的位置按钮。
如果我在我的应用程序中添加代码mMap.setMyLocationEnabled(true);,Android Studio 会说:
(调用需要权限,可能会被用户拒绝:代码应显式检查权限是否可用(使用 checkPermission)或显式处理潜在的 SecurityExceptio...)
package com.example.simon.myapplication1;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;
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 MainActivity extends FragmentActivity implements OnMapReadyCallback {
private TextView mTextMessage;
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextMessage = (TextView) findViewById(R.id.message);
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng aachen = new LatLng(50.774796, 6.088965);
mMap.addMarker(new MarkerOptions().position(aachen).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(aachen));
mMap.setMyLocationEnabled(true);
}
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
mTextMessage.setText(R.string.title_home);
return true;
case R.id.navigation_dashboard:
mTextMessage.setText(R.string.title_dashboard);
return true;
case R.id.navigation_notifications:
mTextMessage.setText(R.string.title_notifications);
return true;
}
return false;
}
};
}
感谢您的帮助!
【问题讨论】:
-
您是否在应用中获得了用户的许可? (您可以通过在清单中添加权限以及
ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)来做到这一点)
标签: java android google-maps google-maps-android-api-2