android gps定位完整代码,android GPS定位 (完整代码实例)
时间: 2023-11-13 22:04:18 浏览: 141
android GPS定位 (完整代码实例)
4星 · 用户满意度95%
好的,以下是一个简单的 Android GPS 定位的完整代码示例:
1. 在 AndroidManifest.xml 文件中添加以下权限:
```
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
```
2. 创建一个新的 Activity 类,并在其中添加以下代码:
```java
public class MainActivity extends AppCompatActivity implements LocationListener {
private LocationManager locationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取 LocationManager 实例
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// 检查是否已经授权了位置访问权限
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// 如果没有授权,向用户请求授权
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
return;
}
// 注册位置监听器
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0, 0, this);
}
@Override
public void onLocationChanged(Location location) {
// 当位置发生变化时,更新 UI 显示
TextView latitudeTextView = findViewById(R.id.latitudeTextView);
TextView longitudeTextView = findViewById(R.id.longitudeTextView);
latitudeTextView.setText(String.valueOf(location.getLatitude()));
longitudeTextView.setText(String.valueOf(location.getLongitude()));
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults.length > 0 &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 如果用户授权了位置访问权限,注册位置监听器
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0, 0, this);
}
}
}
}
```
3. 在布局文件中添加两个 TextView 控件,用于显示经纬度信息:
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context=".MainActivity">
<TextView
android:id="@+id/latitudeTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Latitude: " />
<TextView
android:id="@+id/longitudeTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Longitude: " />
</LinearLayout>
```
这样就完成了一个简单的 Android GPS 定位的完整代码示例。在运行应用程序时,用户首先需要授权位置访问权限,然后应用程序就会启动 GPS 定位,并在位置发生变化时更新经纬度信息。
阅读全文