在Android 10中,使用getNetworkSuggestions()方法需要您申请ACCESS_FINE_LOCATION权限。您需要首先动态地请求此权限,然后才能调用该方法。
以下是一段使用checkSelfPermission()和requestPermissions()方法来申请权限的代码示例:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// Permission is not granted
// Request the permission
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
} else {
// Permission has already been granted
// Call getNetworkSuggestions() method here
}
在您的Activity中处理权限请求的回调结果。如果用户授予了访问位置权限,然后再次调用getNetworkSuggestions()方法。
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted
// Call getNetworkSuggestions() method here
} else {
// permission denied
}
return;
}
}
}
在您的AndroidManifest.xml文件中,确保已添加ACCESS_FINE_LOCATION权限。
请注意,如果用户拒绝了访问位置权限,则可能需要使用其他方法来获取网络推荐列表。