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) {
}
});
}