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

未调用Android“OnRequestPermissionsResult”

邹麻雀
2023-03-14

我试图实现marshmallow的权限支持,但我在“OnRequestPermissionsResult”中的代码从未被调用。代码的“onCreate”和“onMapReady”部分工作正常。检查设备是否具有权限并请求权限可以正常工作。

这是我的活动:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;
UiSettings mapSettings;
int MY_LOCATION_REQUEST_CODE;

@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 googleMap) {
    mMap = googleMap;

    //Check location permission for sdk >= 23
    if (Build.VERSION.SDK_INT >= 23) {

        if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {
            mMap.setMyLocationEnabled(true);
        } else {
            // Request permission.
            ActivityCompat.requestPermissions(MapsActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
                    MY_LOCATION_REQUEST_CODE);
        }
    }

}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == MY_LOCATION_REQUEST_CODE) {
        if (permissions.length == 1 &&
                permissions[0] == android.Manifest.permission.ACCESS_FINE_LOCATION &&
                grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            mMap.setMyLocationEnabled(true);
        } else {
            // Permission was denied. Display an error message.
        }
    }
}

}

共有1个答案

凌修伟
2023-03-14

my_location_request_code应该是非指示常量。

您应该将其声明为

private static final int MY_LOCATION_REQUEST_CODE = 1;
 类似资料:
  • 我正在更新我们的应用程序,以使用新的M运行时权限系统。除了onRequestPermissionsResult()之外,其他操作都正常。我需要检查一个按钮按下的权限,如果成功,发送一个短信。当我授予这样做的权限时,对话框关闭,但它不会触发发送文本,直到我再次按下按钮。 我在onRequestPermissionsResult()方法中调试并设置了断点,但它从未进入其中。 首先调用此方法:

  • 首先,这不是因为应用程序在后台。 通知随数据消息负载一起发送。在游戏控制台中,它表示消息已“确认”,因此它们正在到达设备。对于大多数用户,调用了onMessageReceived方法,但对于少数用户,它不是。为什么会这样? AndroidManifest: MyFirebaseMessagingService:

  • 问题内容: 我正在更新我们的应用程序以使用新的M权限系统。除了onRequestPermissionsResult()以外,其他所有功能都可以使用。我需要检查按下按钮的权限,如果成功,则发送短信。当我授予执行权限时,对话框关闭,但是直到再次按下按钮时,它才触发“发送文本”。 我已经在方法中调试并设置了断点,但是它从来没有涉及到它。 首先调用此方法: 然后我的回调如下所示: 有人遇到过类似的问题吗?

  • 我遇到了有趣的意图工作流处理。我创建了一个通知,如下所示: 当通知到达用户时,我希望当他点击它时 MainActivity.class将处理此意图。我在中处理有关意图的信息。 如果我点击应用程序外的通知,一切正常。活动正确地处理了这个意图并显示了我所期望的。 但是当我在我的应用程序中点击通知时,我的和没有触发。我以为它会被创建为的新实例 你能解释一下这是默认行为吗?我应该如何处理这种情况? 在测试

  • [在这里输入图像描述][1]这是我的第一个android studio项目。尽管导入了Widget.Button包,但无法调用Button类。Pl指南。[主要活动屏幕快照。[][2

  • Ble是广告,在BluetoothGattServer中添加广告数据,广告完成,设备连接。在连接之后,也调用discoverServices(),但是没有发现服务,即没有触发onserviceinstovered()回调。 //回调以处理所有Gatt客户端连接以处理读写请求 //广告数据 //日志总结 `//服务uuid和特性uuid将进入广告数据{onGetService()-device=65