gpt4 book ai didi

android - GPS android requestLocationUpdates

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:23 25 4
gpt4 key购买 nike

我有一个名为 GPSSampleLocation 的类

有一个功能可以打开gps并根据该获取位置

此处 gpsEnabled 为真,但在我的手机中,当我请求 gps 时,手机上方的 GPS 图标会闪烁...但它也不会闪烁...而且我没有获取数据

public void getGPSLocation() {
LocationManager mlocManager = (LocationManager) GPSSampleLocation.this
.getSystemService(Context.LOCATION_SERVICE);
boolean gpsEnabled = mlocManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!gpsEnabled) {
String provider = Settings.Secure.getString(
getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (!provider.contains("gps")) { // if gps is disabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings",
"com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
}
}
gpsEnabled = mlocManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
System.out.println("GPS ENALBLE" + gpsEnabled);
if (gpsEnabled) {
mlocManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0,
GPSSampleLocation.this);
}
}

我也使用了这些权限:

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

最佳答案

以下是我测试 RequestLocationUpdates 和 LocationManager 以及 LocationListener 的代码。

package com.test.locationmanager;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.widget.TextView;

public class LocationManagerStatus extends Activity {
private LocationManager locationManager;
private TextView textView;

private final LocationListener gpsLocationListener = new LocationListener() {

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE:
textView.setText(textView.getText().toString() + "GPS available again\n");
break;
case LocationProvider.OUT_OF_SERVICE:
textView.setText(textView.getText().toString() + "GPS out of service\n");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
textView.setText(textView.getText().toString() + "GPS temporarily unavailable\n");
break;
}
}

@Override
public void onProviderEnabled(String provider) {
textView.setText(textView.getText().toString() + "GPS Provider Enabled\n");
}

@Override
public void onProviderDisabled(String provider) {
textView.setText(textView.getText().toString() + "GPS Provider Disabled\n");
}

@Override
public void onLocationChanged(Location location) {
locationManager.removeUpdates(networkLocationListener);

textView.setText(textView.getText().toString() + "New GPS location: "
+ String.format("%9.6f", location.getLatitude()) + ", "
+ String.format("%9.6f", location.getLongitude()) + "\n");

}
};

private final LocationListener networkLocationListener = new LocationListener() {

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE:
textView.setText(textView.getText().toString() + "Network location available again\n");
break;
case LocationProvider.OUT_OF_SERVICE:
textView.setText(textView.getText().toString() + "Network location out of service\n");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
textView.setText(textView.getText().toString() + "Network location temporarily unavailable\n");
break;
}
}

@Override
public void onProviderEnabled(String provider) {
textView.setText(textView.getText().toString() + "Network Provider Enabled\n");

}

@Override
public void onProviderDisabled(String provider) {
textView.setText(textView.getText().toString() + "Network Provider Disabled\n");
}

@Override
public void onLocationChanged(Location location) {
textView.setText(textView.getText().toString() + "New network location: "
+ String.format("%9.6f", location.getLatitude()) + ", "
+ String.format("%9.6f", location.getLongitude()) + "\n");

}
};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

textView = (TextView) findViewById(R.id.textview);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

}

@Override
protected void onResume() {
super.onResume();

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 0, networkLocationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 0, gpsLocationListener);
}

@Override
protected void onPause() {
super.onPause();

locationManager.removeUpdates(networkLocationListener);
locationManager.removeUpdates(gpsLocationListener);
}
}

关于android - GPS android requestLocationUpdates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com