标签: locationmanager

XCode:位置模拟器不调用locationManager:didUpdateToLocation:FromLocation

当我在XCode上使用位置模拟器并更改位置时,它不会调用locationManager:didUpdateToLocation:FromLocation函数.但是当我得到当前位置时,它正在获得新位置.是这样的意思还是这个错误?它目前不会影响我的应用程序,只是很难调试位置更改.

我正在使用startMonitoringSignificantLocationChanges,如果这有任何区别.

xcode locationmanager ios-simulator

1
推荐指数
1
解决办法
743
查看次数

java.lang.IllegalArgumentException:provider == null

我有一个类的问题,log cat在运行时返回此错误

12-05 23:19:18.299: E/AndroidRuntime(15460): Caused by: java.lang.IllegalArgumentException: provider==null
12-05 23:19:18.299: E/AndroidRuntime(15460):    at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1017)
12-05 23:19:18.299: E/AndroidRuntime(15460):    at com.rbrlnx.lugares.editarLugar.onCreate(editarLugar.java:110)
12-05 23:19:18.299: E/AndroidRuntime(15460):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-05 23:19:18.299: E/AndroidRuntime(15460):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
Run Code Online (Sandbox Code Playgroud)

代码是

     /************************************************************************************
     * 
     * Creamos un location manager, le establecemos unos criterios minimos para encontra
     * 
     ***********************************************************************************/
    LocationManager locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
    Criteria criterio = new Criteria();
    criterio.setAccuracy(Criteria.ACCURACY_COARSE);
    String mejorProvider = locManager.getBestProvider(criterio, true);

        //Obtenemos la última posición conocida
        final Location loc = locManager.getLastKnownLocation(mejorProvider);
        latitud = loc.getLatitude();
        longitud= loc.getLongitude();

        //Me centro en el …
Run Code Online (Sandbox Code Playgroud)

gps android locationmanager

1
推荐指数
1
解决办法
4917
查看次数

即使使用最佳提供程序,getLastKnownLocation()也会返回null

这是我用来获取当前位置的代码:

mgr = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
best = mgr.getBestProvider(criteria, true);
if (best == null) {
    //ask user to enable atleast one of the Location Providers
} else {
    Location location = mgr.getLastKnownLocation(best);
//But sometimes it returns null
}
Run Code Online (Sandbox Code Playgroud)

几乎每次都有 best = network

但它有时并没有提供这个位置.

mgr.getLastKnownLocation(best) returns null
Run Code Online (Sandbox Code Playgroud)

也:

onResume() {
    mgr.requestLocationUpdates(best, 15000, 10, this);
}
Run Code Online (Sandbox Code Playgroud)

和

onPause() {
    mgr.removeUpdates(this);
}
Run Code Online (Sandbox Code Playgroud)

这种情况有替代方案吗?

一种选择可能是

List<String> providers = mgr.getAllProviders();
Run Code Online (Sandbox Code Playgroud)

存储所有提供商并逐步减少1.但从未在任何地方看到过此推荐.此外,要求最好的提供者是文档建议的.

android location locationmanager

1
推荐指数
1
解决办法
8060
查看次数

最小距离应该为android locationmanager提供多长时间?

在android位置管理器中,我们应该提供更新的最小距离更改和更新之间的最短时间.因此,我需要知道我应该提供多长时间的最小距离范围和最短时间,以便尽快知道当前位置?

android geolocation locationmanager

1
推荐指数
1
解决办法
3939
查看次数

获得经度和纬度需要很长时间

我得到了我的设备的经度和纬度,但这需要30秒到一分钟.有什么建议可以减少时间吗?

public class MainActivity extends Activity
{
public String zipcode;
public double latG;
public double lonG;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
    boolean enabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER);

    if (!enabled) 
    {
      Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
      startActivity(intent);
    }

    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationManager.getLastKnownLocation(Context.LOCATION_SERVICE);
    LocationListener locationListener = new LocationListener()
    {

         public void onLocationChanged(Location location) 
         {
                if (location != null) 
                {
                    latG = location.getLatitude();
                    lonG = location.getLongitude();
                    Toast.makeText(MainActivity.this,
                            latG + " " + lonG,
                            Toast.LENGTH_LONG).show();
                } …
Run Code Online (Sandbox Code Playgroud)

java android locationmanager locationlistener

1
推荐指数
1
解决办法
1669
查看次数

我始终看到 GPS 图标是什么意思?

我编写了我的自定义位置管理器,每 30 秒检查一次用户位置的更新。代码运行良好,即我正在接收用户所在位置的更新。但问题是 GPS 图标始终在顶部的状态栏上可见。我猜它应该在 30 秒内只可见一次。这是正常的还是我做错了什么?

在此处输入图片说明

public volatile Double mLatitude = 0.0;
public volatile Double mLongitude = 0.0;

int minTime = 30000;
float minDistance = 0;
MyLocationListener myLocListener = new MyLocationListener();
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

Criteria criteria = new Criteria();
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setSpeedRequired(false);

String bestProvider = locationManager.getBestProvider(criteria, false);
locationManager.requestSingleUpdate(criteria, myLocListener, null);     
locationManager.requestLocationUpdates(bestProvider, minTime, minDistance, myLocListener);


private class MyLocationListener implements LocationListener {
        @Override
        public void onLocationChanged(Location loc)
        {
            if (loc != null) {
                //Do something knowing the location …
Run Code Online (Sandbox Code Playgroud)

gps android locationmanager

1
推荐指数
1
解决办法
2051
查看次数

GcmListenerService和requestLocationUpdates

使用新的GcmListenerService,我试图在收到消息时获取用户位置:

public class MobilAirGcmListenerService extends GcmListenerService {

private static final String TAG = "MobilAir:GcmIService";


@Override
public void onMessageReceived (String from, Bundle data) {

    final String message = data.getString("appehour");

    // Post notification of received message.

       lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, updateTime, distance, this );

    Log.i(TAG, "Received: " + message);

    Intent intentToBroadCast = new Intent(this, MobilAirNotificationClick.class);
    sendBroadcast(intentToBroadCast);

}
Run Code Online (Sandbox Code Playgroud)

}

但是当de locationManger被调用时我得到这个错误:无法在没有调用Looper.prepare()的线程内创建处理程序

是onMessageReceived一个线程?

谢谢

android locationmanager

1
推荐指数
1
解决办法
947
查看次数

用于定位的 Android 前台服务

我需要制作一个每次都在后台运行的应用程序(间谍应用程序)并将设备的位置发送到服务器。

我不想使用 Google Api。

我尝试使用服务、意图服务、前台服务、用于套接字等的线程等,但是当我关闭主要活动时,它在后台运行,有时然后被杀死。

我怎样才能做到这一点?求求你,帮帮我<3

service gps android locationmanager

1
推荐指数
1
解决办法
5354
查看次数

动态更改 GPS LocationListener 的 minTime

我正在编写的应用程序使用 GPS 位置管理器服务 requestLocationUpdates() 但我希望能够在整个程序中更改 min Time 和 min Distance 参数。我在创建时初始化了位置侦听器,但我不知道如何更改这些参数,甚至不知道是否可以这样做。这样做的主要目的是在程序不需要定期更新位置时节省电池寿命。非常感谢你的帮助!-Dom

gps android locationmanager

0
推荐指数
1
解决办法
3151
查看次数

LocationManager无法在Android手机上运行

我有个问题,

当我在模拟器中测试它并在DDMS屏幕中编辑位置时,locationmanager工作得非常好,但是当我在三星Galaxy SII上测试它时,它的nog工作..

请帮我.

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class LbsGeocodingActivity extends Activity {

    private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 0; // in Meters
    private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds

    protected LocationManager locationManager;

    protected Button retrieveLocationButton;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        retrieveLocationButton = (Button) findViewById(R.id.retrieve_location_button);

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

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATES, MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, new …
Run Code Online (Sandbox Code Playgroud)

android locationmanager

0
推荐指数
1
解决办法
6114
查看次数

无法获取位置上的当前位置android更改

什么是我的电脑错误我正在使用和Android工作室(macbook).我曾尝试过不同的方法来获取当前位置,但每次我失败时我都会使用不同的程序来使用不同的程序来获取位置,但没有运气.我按照这个教程,但它不适合我,但我下载了它工作正常的源代码,如果我创建新项目,并尝试从示例项目添加文件,它不起作用.我也试过这个和这个,但没有运气.

我的android工作室有什么问题吗?我需要做什么解决方案.

我还更新了工具和SDk.

我从这里尝试了这个代码

    package com.iorzb.gpstest;

import android.Manifest;
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.util.Log;

public class GPSTracker extends Service implements LocationListener {

private final Context mContext;

// flag for GPS status
boolean isGPSEnabled = false;

// flag for network status
boolean isNetworkEnabled = false;

// flag for GPS status
boolean …
Run Code Online (Sandbox Code Playgroud)

android locationmanager android-studio

0
推荐指数
1
解决办法
7064
查看次数

如何在Android中以编程方式获取使用位置的应用列表?

我正在Android OS上开发一款应用.

我需要一种方法来返回依赖于位置服务/ GPS的应用程序列表

settings android location locationmanager

-1
推荐指数
1
解决办法
705
查看次数

如何在不使用GPS的情况下获取Android设备的当前城市名称?

我目前能够使用GPS或网络提供商在Android应用程序中获取城市名称.

我尝试使用LocationManager,但如果GPS已关闭,则位置管理器和位置为空.为了提高电池性能,我不想打开GPS.

有没有办法没有打开GPS能够获得Android应用程序中的城市名称?或者如果GPS关闭,为什么位置管理器返回null?我怎么解决这个问题?

gps android locationmanager

-6
推荐指数
1
解决办法
914
查看次数