当前位置: 首页 > 知识库问答 >
问题:

位置按钮不起作用GoogleMaps v2

耿敏达
2023-03-14
    public class MapsActivity extends FragmentActivity implements
        OnMapReadyCallback{

private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // 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 map) {
    mMap = map;

    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
            == PackageManager.PERMISSION_GRANTED) {
        mMap.setMyLocationEnabled(true);
    } else {
        // Show rationale and request permission.
    }

}

在清单文件中:

提前感谢…

共有1个答案

严峰
2023-03-14

在api级别23中,您需要以编程方式检查权限。您正在检查位置权限,如果已授予,则将位置设置为启用。如果未授予许可,您可以请求许可。

if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
        == PackageManager.PERMISSION_GRANTED) {
    mMap.setMyLocationEnabled(true);
} else {
    ActivityCompat.requestPermissions(MapActivity.this,
                new String[]{Manifest.permission.ACCESS_FINE_LOCATION},REQUEST_CODE);
}

然后可以通过重写此方法来处理结果。

@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {
    switch (requestCode) {
        case REQUEST_CODE: {
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //do something
            } else {
                finish();
            }
            break;
        }
    }
}

此外,您还可以从模拟器的设置中为应用程序授予权限。

final GoogleMap mMap = map; 
map.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
        @Override
        public boolean onMyLocationButtonClick() {
            LatLng loc = new LatLng(mMap.getMyLocation().getLatitude(),mMap.getMyLocation().getLongitude());
            mMap.moveCamera(CameraUpdateFactory.newLatLng(loc));
            return true;
        }
    });
 类似资料:
  • 请查看下面的编辑。 所以我已经寻找了很多“解决方案”来解决我的问题,但我似乎无法让它工作。 下面的代码就是我的应用程序的样子: 基本上,我想设置一个按钮的位置,但我无法做到这一点。这是我的密码: 编辑:我现在已经设法创建了一个我最初想要的GUI,但是,我有一个新问题。现在可以从GUI的不同部分按下按钮,而不仅仅是在图像上。对于那些感兴趣的人,以下是我能够完成的: 新的图形用户界面外观。 更新代码:

  • 问题内容: 我正在尝试将ID为“ absPos”的div相对于其父div放在绝对位置。但它不起作用,div放置在页面的左上角。 我的代码示例如下 您能帮我解决这个问题吗?在我的实际情况下,我必须放置背景图像,而不是红色背景色。 问候 问题答案: 绝对定位的元素从其最近的祖先开始定位。在您的代码中,祖先都不是“定位”元素,因此div从body元素(即)偏移。 解决方案是将其应用于父div,这迫使它成

  • 问题内容: 我有一个问题是悬停在Firefox中无法使用!它可以在Chrome,IE 9,IE 8和IE 7中运行。有人知道此问题以及如何解决此问题吗? CSS : HTML : 问题答案: 似乎悬停事件没有反馈到跨度。 尝试选择而不是

  • 我在使用Android GridView时遇到了奇怪的问题。我创建了一个3x4的网格,并在其中插入了按钮。我希望当用户单击按钮时,按钮的背景发生变化。这对于除了第一个按钮(索引为0 -左上角的那个)之外的所有按钮都很好。无论我做什么,OnClick事件侦听器都不会为那个按钮触发。 这是我创建视图的代码: 如果我换掉 具有 然后onClick()被触发,但背景仍然没有改变。所有其他按钮都按预期工作。

  • 问题内容: 我正在尝试使用Python和Selenium在LinkedIn上添加联系人。我试图通过在“网络”选项卡(https://www.linkedin.com/mynetwork)中添加LinkedIn提出的联系建议来实现此目的,该选项具有无限滚动功能。 基本上,我希望脚本找到每个建议的配置文件旁边的“连接”按钮,单击该按钮,然后重复执行直到出现错误为止,从而脚本应向下滚动以加载更多“连接”