android - 如何获取开启 GPS 定位的返回值?
问题描述
在这里,我使用 LocationServices 在 xamarin android 上打开 GPS
try
{
MainActivity activity = global::Xamarin.Forms.Forms.Context as MainActivity;
GoogleApiClient googleApiClient = new GoogleApiClient.Builder(activity).AddApi(LocationServices.API).Build();
googleApiClient.Connect();
LocationRequest locationRequest = LocationRequest.Create();
locationRequest.SetPriority(LocationRequest.PriorityHighAccuracy);
locationRequest.SetInterval(10000);
locationRequest.SetFastestInterval(10000 / 2);
LocationSettingsRequest.Builder
locationSettingsRequestBuilder = new LocationSettingsRequest.Builder()
.AddLocationRequest(locationRequest);
locationSettingsRequestBuilder.SetAlwaysShow(false);
LocationSettingsResult locationSettingsResult = await LocationServices.SettingsApi.CheckLocationSettingsAsync(
googleApiClient, locationSettingsRequestBuilder.Build());
if (locationSettingsResult.Status.StatusCode == LocationSettingsStatusCodes.ResolutionRequired)
{
locationSettingsResult.Status.StartResolutionForResult(activity, 0);
}
}
catch (Exception ex)
{
}
但我想从此代码中获取返回值。
此代码将打开一个打开位置弹出窗口,如果用户打开然后我想从中获取布尔值。但是我可以从哪里获得用户是否接受打开位置的布尔值。
这是弹出窗口
如何从此弹出窗口中获取值?
解决方案
根据您的描述,您想在单击“确定”或“否”时获得返回值,从位置弹出窗口中获得感谢,对吗?
如果是,我建议你可以安装plugin.permission来检查状态。查看以下代码,如果单击确定,则status == PermissionStatus.Granted。如果您单击 NO,Thanks, status=PermissionStatus.Denied。
private async void OnCheck(object sender, EventArgs e)
{
try
{
var status = await CrossPermissions.Current.CheckPermissionStatusAsync<LocationPermission>();
if (status != PermissionStatus.Granted)
{
if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location))
{
await DisplayAlert("Need location", "Gunna need that location", "OK");
}
status = await CrossPermissions.Current.RequestPermissionAsync<LocationPermission>();
}
if (status == PermissionStatus.Granted)
{
//Query permission
}
else if (status != PermissionStatus.Unknown)
{
//location denied
}
}
catch (Exception ex)
{
//Something went wrong
}
}
推荐阅读
- spring-boot - 作为集成测试的一部分运行外部 Spring Boot 应用程序
- powershell - Ansible - 使用 powershell 跳过不存在的 ansible 变量的条件
- google-cloud-platform - 是否可以重新分配我在 Google Cloud Platform 上的组织电子邮件中的 5 TB 空间?
- jenkins - 如何从触发的作业中获取内部版本号
- r - 使用“across”更改 dplyr 中的多个列
- visual-studio - Visual Studio 2019 未在解决方案资源管理器中的解决方案下显示项目
- javascript - 关于cloneNode和insertBefore使用的问题
- mongodb - 在 CosmosDB(Mongo API)中创建链接(参考)文档的数据建模问题
- python - 如何将 python xgboost 模型转换为 spark xgboost 模型?
- android - Flutter Android Release Build CRASH - FirebaseCore Initialize App 问题