API 23及之后版本关于用android studio 中LocationManager的方法使用
2016-04-08 13:20
459 查看
package com.example.administrator.locationtest; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.widget.TextView; import android.widget.Toast; import org.w3c.dom.Text; import java.util.List; import java.util.jar.Manifest; /** * Created by Administrator on 2016/4/8. */ public class MainActivity extends Activity{ private TextView positionTextView; private LocationManager locationManager; private String provider; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); positionTextView=(TextView)findViewById(R.id.position_text_view); locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE); if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED){
//此处的判定是主要问题,API23之后需要先判断之后才能调用locationManager中的方法
//包括这里的getLastKnewnLocation方法和requestLocationUpdates方法 Location location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if(location!=null){ showLocation(location); } locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,5000,10,locationListener); } } @Override protected void onDestroy() { super.onDestroy(); if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED){
//此处同样需要判定之后才能调用removeUpdates方法 if(locationManager!=null){ locationManager.removeUpdates(locationListener); } } } LocationListener locationListener=new LocationListener() { @Override public void onLocationChanged(Location location) { showLocation(location); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } }; private void showLocation(Location location){ String currentPosition="latitude is"+location.getLatitu 4000 de()+"\n"+"longitude is"+location.getLongitude(); positionTextView.setText(currentPosition); } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件