Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onRequestPermissionsResult()的问题_Java_Android_Android Permissions - Fatal编程技术网

Java onRequestPermissionsResult()的问题

Java onRequestPermissionsResult()的问题,java,android,android-permissions,Java,Android,Android Permissions,我可以在我的片段中授予或拒绝权限,但当权限被授予但似乎没有被调用时,我尝试调用一个方法 public final int MY_PERMISSIONS_REQUEST_COARSE_LOCATION = 1; In onCreateView():(这很有效) 当从对话框授予权限时,不会调用retrieveGyms(),但会授予权限。 @Override public void onRequestPermissionsResult(int requestCode, String perm

我可以在我的片段中授予或拒绝权限,但当权限被授予但似乎没有被调用时,我尝试调用一个方法

public final int MY_PERMISSIONS_REQUEST_COARSE_LOCATION = 1;
In onCreateView():(这很有效)

当从对话框授予权限时,不会调用retrieveGyms(),但会授予权限。

@Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case MY_PERMISSIONS_REQUEST_COARSE_LOCATION: {
                if (permissions.length == 1 && permissions[0] == Manifest.permission.ACCESS_COARSE_LOCATION && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    retrieveGyms();
                } else {
                    // Location permission denied.
                }
            }
        }
    }
显示retrieveGyms()只是为了显示它的功能和我的期望

public void retrieveGyms() {
        AsyncHttpClient client = new AsyncHttpClient();
        client.get("https://gyminyapp.azurewebsites.net/api/Gym", null, new JsonHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
                gymsArray = response;

                // HashMap<String, Object> returnedGyms = new HashMap<String, Object>();
                for (int i = 0; i < gymsArray.length(); i++) {
                    try {
                        // TODO: check distance from current user location and remove if not within search radius

                        String latitude = gymsArray.getJSONObject(i).getString("latitude");
                        String longitude = gymsArray.getJSONObject(i).getString("longitude");
                        Double doubleLat = Double.parseDouble(latitude);
                        Double doubleLong = Double.parseDouble(longitude);
                        LatLng gymCoord = new LatLng(doubleLat, doubleLong);

                        String name = gymsArray.getJSONObject(i).getString("name");

                        Object gymAddress = gymsArray.getJSONObject(i).get("address");
                        JSONObject gymAddressJSONObj = (JSONObject)gymAddress;
                        String streetAddress = gymAddressJSONObj.getString("streetAddress");
                        String city = gymAddressJSONObj.getString("city");
                        String state = gymAddressJSONObj.getString("state");
                        int zipCode = gymAddressJSONObj.getInt("zipCode");
                        String zipCodeString = Integer.toString(zipCode);

                        String addressString = streetAddress + " " + city + ", " + state + " " + zipCodeString;

                        Marker marker = mMap.addMarker(new MarkerOptions()
                                .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker))
                                .flat(false)
                                .title(name)
                                .snippet(addressString)
                                .position(gymCoord));

                        // Add marker to markers array
                        markers.add(marker);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                    // Zoom map to fit all markers
                    LatLngBounds.Builder builder = new LatLngBounds.Builder();
                    for (Marker marker : markers) {
                        builder.include(marker.getPosition());
                    }
                    LatLngBounds bounds = builder.build();

                    int padding = 75;
                    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
                    mMap.animateCamera(cameraUpdate);
                }
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable e) {

            }
        });
    }
public void retrieveGyms(){
AsyncHttpClient=新的AsyncHttpClient();
client.get(“https://gyminyapp.azurewebsites.net/api/Gym,null,新的JsonHttpResponseHandler(){
@凌驾
成功时的公共void(int statusCode,Header[]headers,JSONArray响应){
gymsArray=反应;
//HashMap returnedGyms=新HashMap();
对于(int i=0;i
活动中是否有android:excludeFromRecents=“true”?活动中是否有onRequestPermissionResult()?这两个问题都没有。活动中是否有android:excludeFromRecents=“true”?活动中是否有onRequestPermissionResult()?这两个问题都没有。
public void retrieveGyms() {
        AsyncHttpClient client = new AsyncHttpClient();
        client.get("https://gyminyapp.azurewebsites.net/api/Gym", null, new JsonHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
                gymsArray = response;

                // HashMap<String, Object> returnedGyms = new HashMap<String, Object>();
                for (int i = 0; i < gymsArray.length(); i++) {
                    try {
                        // TODO: check distance from current user location and remove if not within search radius

                        String latitude = gymsArray.getJSONObject(i).getString("latitude");
                        String longitude = gymsArray.getJSONObject(i).getString("longitude");
                        Double doubleLat = Double.parseDouble(latitude);
                        Double doubleLong = Double.parseDouble(longitude);
                        LatLng gymCoord = new LatLng(doubleLat, doubleLong);

                        String name = gymsArray.getJSONObject(i).getString("name");

                        Object gymAddress = gymsArray.getJSONObject(i).get("address");
                        JSONObject gymAddressJSONObj = (JSONObject)gymAddress;
                        String streetAddress = gymAddressJSONObj.getString("streetAddress");
                        String city = gymAddressJSONObj.getString("city");
                        String state = gymAddressJSONObj.getString("state");
                        int zipCode = gymAddressJSONObj.getInt("zipCode");
                        String zipCodeString = Integer.toString(zipCode);

                        String addressString = streetAddress + " " + city + ", " + state + " " + zipCodeString;

                        Marker marker = mMap.addMarker(new MarkerOptions()
                                .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker))
                                .flat(false)
                                .title(name)
                                .snippet(addressString)
                                .position(gymCoord));

                        // Add marker to markers array
                        markers.add(marker);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                    // Zoom map to fit all markers
                    LatLngBounds.Builder builder = new LatLngBounds.Builder();
                    for (Marker marker : markers) {
                        builder.include(marker.getPosition());
                    }
                    LatLngBounds bounds = builder.build();

                    int padding = 75;
                    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
                    mMap.animateCamera(cameraUpdate);
                }
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable e) {

            }
        });
    }