Android开发之地理定位的实例代码

来源:爱站网时间:2022-12-05编辑:网友分享
为了让小伙伴们更好的了解Android开发之地理定位具体操作代码,爱站技术频道小编分享了下列文章给大家参考,这篇文章具有不小的参考价值,如果你喜欢,随时来翻看阅读都是可以的。

最近试着写了一下Android的定位,代码在下面,比较简单
首先需要的权限有

1

2

3

uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

 uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

 uses-permission android:name="android.permission.INTERNET"/>

然后是里面的代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100   

package com.example.a5.myapplication;

  

import android.Manifest;

import android.content.Context;

import android.content.pm.PackageManager;

import android.location.Criteria;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.support.v4.app.ActivityCompat;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.view.Window;

import android.view.WindowManager;

import android.webkit.WebView;

import android.widget.Button;

import android.widget.TextView;

  

public class MainActivity extends AppCompatActivity {

  

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  requestWindowFeature(Window.FEATURE_NO_TITLE);

  //全屏

  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

    WindowManager.LayoutParams.FLAG_FULLSCREEN);

  setContentView(R.layout.activity_main);

  Button button = (Button) findViewById(R.id.button);

  button.setOnClickListener(new View.OnClickListener() {

   @Override

   public void onClick(View v) {

    //获取位置服务

    LocationManager locationManager = (LocationManager) MainActivity.this.getSystemService(Context.LOCATION_SERVICE);

    Criteria criteria = new Criteria();

    //ACCURACY_HIGH/ACCURACY_LOW精度选择

    criteria.setAccuracy(Criteria.ACCURACY_FINE);

    //高度

    criteria.setAltitudeRequired(true);

    //方位信息

    criteria.setBearingRequired(true);

    //是否允许付费

    criteria.setCostAllowed(true);

    //对电量的要求

    criteria.setPowerRequirement(Criteria.POWER_LOW);

    //速度

    criteria.setSpeedRequired(true);

    //获取最佳服务

    String provider = locationManager.getBestProvider(criteria, true);

    //权限检查

    if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

     return;

    }

    //获取到了位置

    Location location = locationManager.getLastKnownLocation(provider);

    //开启地理位置监听定位类型、毫秒、米、监听时间

    locationManager.requestLocationUpdates(provider,3000,1,new listener());

    locateResult(location);

  

   }

  });

 }

 public class listener implements LocationListener {

  

  @Override

  public void onLocationChanged(Location location) {

   //位置变化,获取最新的位置

   locateResult(location);

  }

  

  @Override

  public void onStatusChanged(String provider, int status, Bundle extras) {

  

  }

  

  @Override

  public void onProviderEnabled(String provider) {

  

  }

  

  @Override

  public void onProviderDisabled(String provider) {

  

  }

 }

  

 public void locateResult(Location location){

  new AlertDialog.Builder(MainActivity.this)

    .setMessage("纬度" + String.valueOf(location.getLatitude()) +

      "\n经度" + String.valueOf(location.getLongitude()) +

      "\n速度" + String.valueOf(location.getSpeed()) +

      "\n高度" + String.valueOf(location.getAltitude()) +

      "\n朝向" + String.valueOf(location.getBearing())

    )

    .setNegativeButton("取消",null)

    .show();

 }

}

最后上图:

Android开发之地理定位的实例代码内容大家都看清楚了吧,如果你存在疑问,随时都能来网站给小编留言,js.aizhan.com网站里面的内容你们可以尽情翻看,遇到不懂的来咨询就可以了。

上一篇:android左右侧滑菜单实例代码介绍

下一篇:android获取json数据的实例代码

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载