我正在调用以下方法:
Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, GPS_LOC);
但是在 onActivityResult 作为下面的方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != -1) {
switch (requestCode) {
case GPS_LOC:
userData();
break;
}
}
}
它是“requestCode”和“resultCode”返回相同的值,或者你“打开”gps 设置或返回而不做“打开”。我不想调用 userData();当用户没有打开“on”gps 设置时。请调查此事
最佳答案
问题是您无法启动 Activity :
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS
一个结果。
因此您的 requestCode 永远不会从 Activity 中返回。
问问自己为什么要开始这个结果?是为了检查他们是否打开了 GPS?如果是这样,当 Activity 返回时再次检查它。如果是其他原因,我认为您没有掌握 startActivityForResult 的用途。
关于android - requestCode 代码返回相同的值,或者更改您是否检查 gps 的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324608/