定位软件pp和网站源码分享?定位软件官网(定位软件网站)

大家好!今天让小编来大家介绍下关于定位软件pp和网站源码分享?定位软件官网的问题,以下是酷知号的小编对此问题的归纳整理,让我们一起来看看吧。

定位软件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

(0)
上一篇 2023年8月4日 20:10
下一篇 2023年8月4日 20:10

相关推荐