大家好!今天让小编来大家介绍下关于定位软件pp和网站源码分享?定位软件官网的问题,以下是酷知号的小编对此问题的归纳整理,让我们一起来看看吧。
大家好,感谢邀请,今天来为大家分享一下定位软件app和网站源码分享的问题,以及和定位软件官网的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
今天学习一下在手机中获取GPS经纬度,如果你也是初学者,可以参考一下本文,或许对你的学习有帮助。直接上代码
清单
<?xmlversion=&34;encoding=&34;?>
<manifestxmlns:android=&34;
package=&34;>
<uses-permissionandroid:name=&34;/>
<!–允许使用PowerManager的WakeLocks保持进程在休眠时从屏幕消失–>
<uses-permissionandroid:name=&34;/>
<!–允许一个程序接收到ACTION_BOOT_COMPLETED广播在系统完成启动–>
<uses-permissionandroid:name=&34;/>
<!–改变WiFi多播状态–>
<uses-permissionandroid:name=&34;/>
<!–允许程序读取底层系统日志文件–>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/><!–since1.6.0–>
<!–Optional.Requiredforlocationfeature–>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-permissionandroid:name=&34;/>
<uses-featureandroid:name=&34;/>
<uses-featureandroid:name=&34;/>
<!–关闭应用程序的权限–>
<uses-permissionandroid:name=&34;/>
<application
android:allowBackup=&34;
android:icon=&34;
android:label=&34;
android:supportsRtl=&34;
android:theme=&34;>
<activityandroid:name=&34;>
<intent-filter>
<actionandroid:name=&34;/>
<categoryandroid:name=&34;/>
</intent-filter>
</activity>
</application>
</manifest>
实现工具类
packagecom.tool;
importandroid.Manifest;
importandroid.content.Context;
importandroid.content.pm.PackageManager;
importandroid.location.Location;
importandroid.location.LocationListener;
importandroid.location.LocationManager;
importandroid.os.Build;
importandroid.os.Bundle;
importandroid.util.Log;
importjava.util.List;
publicclassLocationUtils{
privatevolatilestaticLocationUtilsuniqueInstance;
privateLocationManagerlocationManager;
privateStringlocationProvider;
privateLocationlocation;
privateContextmContext;
privateStringTAG=&34;;
privateLocationUtils(Contextcontext){
mContext=context;
getLocation();
}
//采用DoubleCheckLock(DCL)实现单例
publicstaticLocationUtilsgetInstance(Contextcontext){
if(uniqueInstance==null){
synchronized(LocationUtils.class){
if(uniqueInstance==null){
uniqueInstance=newLocationUtils(context);
}
}
}
returnuniqueInstance;
}
privatevoidgetLocation(){
//1.获取位置管理器
locationManager=(LocationManager)mContext.getSystemService(Context.LOCATION_SERVICE);
//2.获取位置提供器,GPS或是NetWork
List<String>providers=locationManager.getProviders(true);
if(providers.contains(LocationManager.NETWORK_PROVIDER)){
//如果是网络定位
Log.d(TAG,&34;);
locationProvider=LocationManager.NETWORK_PROVIDER;
}elseif(providers.contains(LocationManager.GPS_PROVIDER)){
//如果是GPS定位
Log.d(TAG,&34;);
locationProvider=LocationManager.GPS_PROVIDER;
}else{
Log.d(TAG,&34;);
return;
}
//需要检查权限,否则编译报错,想抽取成方法都不行,还是会报错。只能这样重复code了。
//if(Build.VERSION.SDK_INT>=23&&
//ActivityCompat.checkSelfPermission(mContext,Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED&&
//ActivityCompat.checkSelfPermission(mContext,Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){
//return;
//}
//if(ActivityCompat.checkSelfPermission(mContext,Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED&&ActivityCompat.checkSelfPermission(mContext,Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){
//return;
//}
//3.获取上次的位置,一般第一次运行,此值为null
Locationlocation=locationManager.getLastKnownLocation(locationProvider);
if(location!=null){
setLocation(location);
}
//监视地理位置变化,第二个和第三个参数分别为更新的最短时间minTime和最短距离minDistace
locationManager.requestLocationUpdates(locationProvider,0,0,locationListener);
}
privatevoidsetLocation(Locationlocation){
this.location=location;
Stringaddress=&34;+location.getLatitude()+&34;+location.getLongitude();
Log.d(TAG,address);
}
//获取经纬度
publicLocationshowLocation(){
returnlocation;
}
//移除定位监听
publicvoidremoveLocationUpdatesListener(){
//需要检查权限,否则编译不过
//if(Build.VERSION.SDK_INT>=23&&
//ActivityCompat.checkSelfPermission(mContext,Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED&&
//ActivityCompat.checkSelfPermission(mContext,Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){
//return;
//}
if(locationManager!=null){
uniqueInstance=null;
locationManager.removeUpdates(locationListener);
}
}
/**
*LocationListern监听器
*参数:地理位置提供器、监听位置变化的时间间隔、位置变化的距离间隔、LocationListener监听器
*/
LocationListenerlocationListener=newLocationListener(){
/**
*当某个位置提供者的状态发生改变时
*/
@Override
publicvoidonStatusChanged(Stringprovider,intstatus,Bundlearg2){
}
/**
*某个设备打开时
*/
@Override
publicvoidonProviderEnabled(Stringprovider){
}
/**
*某个设备关闭时
*/
@Override
publicvoidonProviderDisabled(Stringprovider){
}
/**
*手机位置发生变动
*/
@Override
publicvoidonLocationChanged(Locationlocation){
location.getAccuracy();//精确度
setLocation(location);
}
};
}
调用
packagecom.aj.GPS;
importandroid.app.Activity;
importandroid.content.Context;
importandroid.location.Location;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.TextView;
importcom.aj.GPS.MainActivity;
importcom.tool.LocationUtils;
publicclassMainActivityextendsActivity{
privateContextct;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.ct=this;
Buttonbtn=(Button)findViewById(R.id.activitymainButton1);
finalTextViewtext=(TextView)findViewById(R.id.activitymainTextView1);
btn.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
Locationlocation=LocationUtils.getInstance(MainActivity.this).showLocation();
if(location!=null){
Stringaddress=&34;+location.getLatitude()+&34;+location.getLongitude();
Log.d(&34;,address);
text.setText(address);
}
}
});
}
}
好了,文章到这里就结束啦,如果本次分享的定位软件app和网站源码分享和定位软件官网问题对您有所帮助,还望关注下本站哦!
以上就是小编对于定位软件pp和网站源码分享?定位软件官网问题和相关问题的解答了,定位软件pp和网站源码分享?定位软件官网的问题希望对你有用!
文章来自互联网,只做分享使用。发布者:酷知号,转转请注明出处:https://www.kuzhihao.com/article/348850.html