Java-未调用Android“ onRequestPermissionsResult”

Java-未调用Android“ onRequestPermissionsResult”,第1张

概述我正在尝试实现棉花糖的权限支持,但从未调用过“onRequestPermissionsResult”中的代码.代码的“onCreate”和“onMapReady”部分工作正常.检查设备是否具有权限并请求该权限可以正常工作.我正在使用运行AndroidMarshmallow6.0,API23的Nexus5X模拟器.我已经尝试做这里提到

我正在尝试实现棉花糖的权限支持,但从未调用过“ onRequestPermissionsResult”中的代码.代码的“ onCreate”和“ onMapReady”部分工作正常.检查设备是否具有权限并请求该权限可以正常工作.

我正在使用运行Android Marshmallow 6.0,API 23的Nexus 5X模拟器.

我已经尝试做这里提到的事情-> Android M Permissions: onRequestPermissionsResult() not being called

但是我无法使其正常工作,无论我使用“ ActivityCompat.requestPermissions”还是直接使用“ requestPermissions”都没关系,它永远不会被调用.

我还将我的appcompat和支持库更新为v24.2.0

有任何想法吗?

这是我的活动:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {private GoogleMap mMap;UiSettings mapSettings;int MY_LOCATION_REQUEST_CODE;@OverrIDeprotected 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);}@OverrIDepublic 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);        }    }}@OverrIDepublic 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.        }    }}

}

解决方法:

MY_LOCATION_REQUEST_CODE应该是非负常量.

您应该将其声明为

private static final int MY_LOCATION_REQUEST_CODE = 1;
总结

以上是内存溢出为你收集整理的Java-未调用Android“ onRequestPermissionsResult”全部内容,希望文章能够帮你解决Java-未调用Android“ onRequestPermissionsResult”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1094006.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存