【发布时间】:2018-01-01 18:34:02
【问题描述】:
您好,可以通过 Wi-Fi 基于 Android Things 获取 Pico i.MX7 的位置吗?当我在手机上运行此代码时,一切正常,但是当我在 Pico 上运行它时,requestLocationUpdates 似乎没有更新任何内容,并且位置仍然为空。我也有 Manifest 的权限(FINE 和 COARSE 位置)。谢谢!
public class MainActivity extends Activity {
private LocationManager mLocationManager;
private String locationProvider = LocationManager.NETWORK_PROVIDER;
private TextView lat;
private TextView lon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lat = (TextView) findViewById(R.id.lat);
lon = (TextView) findViewById(R.id.lon);
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.ACCESS_FINE_LOCATION)) {
} else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
2);
}
}
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mLocationManager.getLastKnownLocation(locationProvider);
mLocationManager.requestLocationUpdates(locationProvider, 10, 0, mLocationListener);
// Toast.makeText(this, "Start", Toast.LENGTH_SHORT).show();
showMyLocation(location);
//Intent intent = new Intent(getApplicationContext(), SprinklerActivity.class);
//startActivity(intent);
}
private void showMyLocation(Location l) {
if (l == null) {
Toast.makeText(this, "No location", Toast.LENGTH_SHORT).show();
lat.setText("0");
lon.setText("0");
} else {
Toast.makeText(this, "Latitude: " + l.getLatitude(), Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Longitude: " + l.getLongitude(), Toast.LENGTH_SHORT).show();
lat.setText(l.getLatitude() + "");
lon.setText(l.getLongitude() + "");
}
}
private LocationListener mLocationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
showMyLocation(location);
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};
【问题讨论】:
-
您的手机是否开启了 GPS?
-
@Onik 不,只有wifi
-
Pico和您的手机是否在同一个 WiFi 网络上? -
是的。我什至尝试用电缆连接 Pico,但它仍然无法正常工作
-
我在 LastKnownLocation 中收到第一个 null 并且未收到新的位置更新。是的,我也试过重新安装它
标签: location wifi android-things