java - 当我启用位置单击确定按钮时,OnAtivity 导致片段对我不起作用
问题描述
我启用了位置,但是当我单击确定并取消按钮时,onActivityresult 没有调用任何指南
这是我的代码,当我单击“确定”按钮时,此功能启用位置,它工作正常,但我需要“确定”按钮,我转到另一个片段,当我单击取消时,它仍然在活动中工作,但在片段中不起作用
public void locationsettings()
{
LocationRequest request=new LocationRequest().setFastestInterval(1500).setInterval(3000).setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationSettingsRequest=new LocationSettingsRequest.Builder().addLocationRequest(request);
Task<LocationSettingsResponse>responseTask= LocationServices.getSettingsClient(getContext()).checkLocationSettings(locationSettingsRequest.build());
responseTask.addOnCompleteListener(new OnCompleteListener<LocationSettingsResponse>() {
@Override
public void onComplete(@NonNull Task<LocationSettingsResponse> task) {
try {
LocationSettingsResponse response= task.getResult(ApiException.class);
}catch (ApiException e)
{
switch(e.getStatusCode())
{
case LocationSettingsStatusCodes
.RESOLUTION_REQUIRED:
try {
ResolvableApiException resolvableApiException=(ResolvableApiException)e;
resolvableApiException.startResolutionForResult(getActivity(),REQUEST_LOCATION);
Toast.makeText(getContext(),"resolution",Toast.LENGTH_SHORT).show();
}catch (IntentSender.SendIntentException ex)
{
ex.printStackTrace();
}
catch (ClassCastException e1)
{
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
{
Toast.makeText(getContext(),"okk",Toast.LENGTH_SHORT).show();
break;
}
}
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if(requestCode==REQUEST_LOCATION&&requestCode==RESULT_OK)
{
switch (resultCode) {
case RESULT_OK:
// All required changes were successfully made
Toast.makeText(getContext(), "Ok_PRESSED", Toast.LENGTH_SHORT).show();
break;
case RESULT_CANCELED:
// The user was asked to change settings, but chose not to
Toast.makeText(getContext(), "Cancel_PRESS", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
解决方案
这对我有用,我用了这个 startIntentSenderForResult(resolvableApiException.getResolution().getIntentSender(), REQUEST_LOCATION, null, 0, 0, 0, null);
代替
resolvableApiException.startResolutionForResult(getActivity(),REQUEST_LOCATION);
推荐阅读
- c# - 如何在其他循环函数中获取“FileSystemWatcher”的值
- amazon-web-services - Redshift UDF 逻辑问题
- ruby-on-rails - 通过 rails 5.2 中的主动存储将文件和图像上传到 Amazon-S3
- android - 从android中的firebase数据库向多个号码发送消息
- ios - 如果两个单词合适,则将它们放在同一行,如果不合适,则将它们放在新行中
- sql - SQL - ORDER BY Timestamp Array 数据不起作用
- pandas - 针对不同类别的其他列 pandas 和 seaborn 或 matplotlib 的 Groupby 逐年绘图
- c++ - 如何获取 Qt C++ 中所有可用主题的列表?
- linux - 包含的标头的功能未定义
- php - Laravel 和 CUPS/IPP 打印