如何开启手机定位权限 【AndroidApp】定位导航GPS中进入手机定位功能讲解及实战(附源码和演
一、开启定位功能
手机定位分为卫星定位和网络定位两大类。
(1)卫星定位卫星定位服务由几个中国卫星导航平台提供。卫星定位的原理是按照多颗卫星与导航芯片的通讯结果得到电脑与卫星距离,然后计算手机当前所处的经度、纬度以及海拔高度。使用卫星定位需进入电脑上的GPS功能。
(2)网络定位网络定位又分为基站定位与WiFi定位。
(1)基站定位手机插上SIM卡后,SIM卡会搜索周边的基站信号并接入通信服务。用基站定位需进入电脑上的数据连接功能。
(2)WiFi定位手机接入某个公共热点网络,比如首都机场的WiFi如何开启手机定位权限如何开启手机定位权限,查询WiFi路由器的位置便可断定该手机的大概位置。使用WiFi定位需进入手机上的WLAN功能。
运行App后会显示你电脑的对应功能是否进入
代码如下
Java类
package com.example.location;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.widget.CheckBox;
import androidx.appcompat.app.AppCompatActivity;
import com.example.location.util.SwitchUtil;
@SuppressLint("SetTextI18n")
public class LocationSettingActivity extends AppCompatActivity {
private CheckBox ck_gps; // 声明一个定位功能的复选框对象
private CheckBox ck_wlan; // 声明一个WLAN功能的复选框对象
private CheckBox ck_mobiledata; // 声明一个数据连接功能的复选框对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location_setting);
ck_gps = findViewById(R.id.ck_gps);
ck_wlan = findViewById(R.id.ck_wlan);
ck_mobiledata = findViewById(R.id.ck_mobiledata);
}
@Override
protected void onResume() {
super.onResume();
// 获取定位功能的开关状态
boolean isGpsOpen = SwitchUtil.getLocationStatus(this);
ck_gps.setChecked(isGpsOpen);
ck_gps.setText("定位功能" + ((isGpsOpen)?"开启":"关闭"));
// 获取WLAN功能的开关状态
boolean isWlanOpen = SwitchUtil.getWlanStatus(this);
ck_wlan.setChecked(isWlanOpen);
ck_wlan.setText("WLAN功能" + ((isWlanOpen)?"开启":"关闭"));
// 获取数据连接功能的开关状态
boolean isMobileOpen = SwitchUtil.getMobileDataStatus(this);
ck_mobiledata.setChecked(isMobileOpen);
ck_mobiledata.setText("数据连接" + ((isMobileOpen)?"开启":"关闭"));
ck_gps.setOnCheckedChangeListener((buttonView, isChecked) -> {
// 跳转到系统的定位设置页面
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
});
ck_wlan.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// 跳转到系统的WLAN设置页面
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
} else { // Android10之后,普通应用不能直接开关WLAN
// 设置WLAN功能的开关状态
SwitchUtil.setWlanStatus(this, isChecked);
ck_wlan.setText("WLAN功能" + ((isChecked)?"开启":"关闭"));
}
});
ck_mobiledata.setOnCheckedChangeListener((buttonView, isChecked) -> {
// 跳转到系统的移动网络设置页面
startActivity(new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS));
});
}
}
XML文件
创作不易认为有帮助请点赞关注收藏~~~