相关疑难解决方法(0)

如何在Android中以编程方式获取当前GPS位置?

我需要以编程方式使用GPS获取当前位置.我怎样才能实现它?

gps android location geolocation

694
推荐指数
17
解决办法
86万
查看次数

Android LocationClient类已弃用,但在文档中使用

如果我们查看了该文档LocationClient,我们可以看到该类已被弃用.

但是文档中使用了不推荐使用的类来获取当前位置.

我认为这有点误导,或者我在查看不正确的文件?

android

149
推荐指数
2
解决办法
7万
查看次数

Android位置提供商 - GPS或网络提供商?

在我的应用程序中,我想确定用户的当前位置.但是我在这方面有几个问题:

  1. 有不同的位置提供商,哪一个最准确?该GPS提供商网络提供商

  2. 这些可用的提供商有多远?它们如何运作?

  3. 能否请您提供一些代码片段或教程,介绍如何开始在我的应用程序中实现GPS功能?

android location location-provider

120
推荐指数
2
解决办法
12万
查看次数

在Android中使用Google Maps API显示当前位置和附近的地点以及两个地点之间的路线

我需要Google Maps在Android中开发一个应用程序来定位我当前的位置并需要找到最近的位置.

(例如:我当前所在地附近的警察局.)

它应该接受我当前的位置和输出应该显示最近的地方.

任何人都可以帮我提一些建议,链接,教程吗?

android google-maps google-places-api

50
推荐指数
4
解决办法
16万
查看次数

如何在谷歌地图android中获取当前位置

其实我的问题是我没有得到当前的位置纬度和经度我尝试了很多方法.我知道这个问题已经问过我试过那个答案还是我还没有得到答案.请帮助我代码:

    if (googleMap == null) {
        googleMap = ((MapFragment) getFragmentManager().findFragmentById(
                R.id.map)).getMap();

        // check if map is created successfully or not
        if (googleMap == null) {
            Toast.makeText(getApplicationContext(),
                    "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                    .show();
        }
    }
    googleMap.setMyLocationEnabled(true);
    Location myLocation = googleMap.getMyLocation();  //Nullpointer exception.........
    LatLng myLatLng = new LatLng(myLocation.getLatitude(),
            myLocation.getLongitude());

    CameraPosition myPosition = new CameraPosition.Builder()
            .target(myLatLng).zoom(17).bearing(90).tilt(30).build();
    googleMap.animateCamera(
        CameraUpdateFactory.newCameraPosition(myPosition));
Run Code Online (Sandbox Code Playgroud)

android google-maps

49
推荐指数
6
解决办法
18万
查看次数

快速获取当前位置,一次在android中

我有一个需要设备当前位置(经度和纬度)的Android应用程序.我已经在网上尝试了一些教程,特别是堆栈溢出的一些解决方案,但它们对我来说效果不好.我的要求非常简单:首先我需要它快速并且在片段开始时需要一次位置.其次我需要它尽可能精确,我的意思是如果GPS不可用,它应首先使用GPS,然后使用网络提供商.

例如,我已经尝试过这个解决方案,但它在30秒后返回null,但我知道有一些所有的东西都可以,因为谷歌地图和其他应用程序运行良好!

几乎所有答案建议的东西都是使用getLastKnownLocation(),但我认为它不是当前的,如果是这样的话我不想要它.

任何人都可以建议我一些简单快捷的方式来获取位置只是一次?!

提前致谢

gps android location

40
推荐指数
4
解决办法
5万
查看次数

从IntentService获取位置时,在死线程上向Handler发送消息

即使手机没有醒来,我的应用也需要定期修复定位.为此,我使用IntentService和Commonsware慷慨提供的模式. https://github.com/commonsguy/cwac-wakeful

为了获得位置修复,我依赖于一个名为Fedor的成员提供的以下代码. 在Android上获取用户当前位置的最简单,最强大的方法是什么?.我稍微修改它以返回null而不是获取最后的已知位置

它们在没有组合时都能很好地工作:我可以在一个Activity中从Fedor的类中获得一个位置修复,我可以使用Commonsware类做一些基本的东西(比如记录一些东西).

当我试图从Commonsware的WakefulIntentService子类获取位置修复时,会出现问题.LocationListeners没有对locationUpdates做出反应,我得到了这些警告(我还没有得到线程,处理程序......的细微之处).有人可以帮我理解问题所在吗?谢谢,祝大家新年快乐:)

12-31 14:09:33.664: W/MessageQueue(3264): Handler (android.location.LocationManager$ListenerTransport$1) {41403330} sending message to a      Handler on a dead thread
12-31 14:09:33.664: W/MessageQueue(3264): java.lang.RuntimeException: Handler (android.location.LocationManager$ListenerTransport$1) {41403330} sending message to a Handler on a dead thread
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Handler.sendMessageAtTime(Handler.java:473)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Handler.sendMessageDelayed(Handler.java:446)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Handler.sendMessage(Handler.java:383)
12-31 14:09:33.664: W/MessageQueue(3264): at android.location.LocationManager$ListenerTransport.onLocationChanged(LocationManager.java:193)
12-31 14:09:33.664: W/MessageQueue(3264): at android.location.ILocationListener$Stub.onTransact(ILocationListener.java:58)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Binder.execTransact(Binder.java:338)
12-31 14:09:33.664: W/MessageQueue(3264): at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我的WakefulIntentService子类: …

android commonsware-cwac

35
推荐指数
3
解决办法
4万
查看次数

Android GPS定位精度问题

我正在研究android中的gps跟踪应用程序.这是我的代码架构:

  1. BackgroundSyncService:用于获取位置更新的服务类.这里GoogleApiClient已初始化并实现了其他与位置相关的方法.
  2. AppRunCheckerReceiver:一个BroadcastReceiver类,它将BackgroundSyncService在一个时间间隔内检查我是否正在运行.如果它停止然后它开始.
  3. GpsEnableReceiver:如果gps状态改变,它将触发的BroadcastReceiver.它将BackgroundSyncService在一个时间间隔内检查我是否正在运行.如果它停止然后它开始.
  4. InternetConnectionStateReceiver:Internet状态更改时将触发的BroadcastReceiver.它将BackgroundSyncService在一个时间间隔内检查我是否正在运行.如果停止,则启动.

在我的BackgroundSyncService服务中,我使用以下方式初始化GoogleApiClient:

public void setLocationLocationRequest() {

        try {
            googleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this).addApi(com.google.android.gms.location.LocationServices.API).build();

            locationRequest = new LocationRequest();
            locationRequest.setInterval(3000);
            locationRequest.setFastestInterval(3000);
            locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
            googleApiClient.connect();
        } catch (Exception e) {

    }
Run Code Online (Sandbox Code Playgroud)

这里是accuricy LocationRequest.PRIORITY_HIGH_ACCURACY和间隔

locationRequest.setInterval(3000)
Run Code Online (Sandbox Code Playgroud)

是GoogleApiClient实现代码.

应用程序GPS信息部分包含纬度经度和精度参数

我的发现:onLocationChanged(Location location)方法中我用这种方式检查Location对象的准确性:location.getAccuracy().如果精度小于50米,那么我接受它.

在85%的情况下,它像魅力一样工作.它向我发送GPS的确切位置.但在15%的情况下,它给我发送了不准确的位置,如超过300米.

15%的设备是低成本的中国品牌手机.

我的问题:

  1. 如何使准确度达到99%左右.我的代码架构有什么问题吗?
  2. GPS精度是否取决于设备配置?如果是,那么我可以为低配置设备做什么?
  3. Uber,Go-JEK等车载共享应用程序如何适用于所有设备?他们是否只有GPS的额外编码?
  4. 我的申请是孟加拉国.互联网很慢.它对GPS精度有负面影响吗?

在此先感谢此主题.并且抱歉英语不好.

gps android tracking

32
推荐指数
3
解决办法
1万
查看次数

Android位置管理器,获取GPS位置,如果没有GPS,则转到网络提供商位置

我使用下面给出的代码来获取位置:

public Location getLocation() {
        try {
            mLocationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);

            // getting GPS status
            boolean isGPSEnabled = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

            // getting network status
            boolean isNetworkEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

            if (!isGPSEnabled && !isNetworkEnabled) {
                // no network provider is enabled
            } else {
                // First get location from Network Provider
                if (isNetworkEnabled) {
                    mLocationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER,  MIN_TIME_BW_UPDATES,  MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("Network", "Network");
                    if (mLocationManager != null) {
                        location = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                        if (location != null) {
                            lat = location.getLatitude();
                            lng = location.getLongitude();
                        }
                    }
                } …
Run Code Online (Sandbox Code Playgroud)

gps android android-location

30
推荐指数
2
解决办法
10万
查看次数

Android找到GPS位置一次,显示加载对话框

我正在编写一个需要用户当前位置的应用程序(lastknownlocation不会非常有帮助),并显示从数据库中获取的所有最近"项目"的列表.

我发现最近的项目运行良好,但目前仅使用硬编码的纬度和经度位置,但现在是时候实现查找实际位置了.

任何人都可以提供一个示例,说明如何让应用程序在后台找到当前的好位置并让应用程序等待.当人们移动时,我只需要一次不更新的位置.我已经实现了一个位置监听器,但我知道获得GPS定位可能会很慢.我已经看到了使用上一个已知位置或实现位置监听器的其他示例,该位置监听器继续运行和更新,但是因为我的Activity需要位置坐标才能显示应用程序崩溃的任何内容.我需要在搜索时显示进度对话框.

如何让locationlistener在后台运行一次,然后在找到位置后删除位置更新.我需要应用程序的其余部分等到它有GPS位置或超时后说20-30秒.我想要一个ProgressDialog,以便用户知道某些事情正在发生,但它必须是旋转加载动画而不是百分比或任何东西.如果可能的话,我希望用户能够取消对话,如果他们厌倦了等待,那么他们可以通过键入郊区等来搜索.

我一直试图用线程做到这一点,但它变得比我觉得应该更复杂,但仍然无法工作.在iPhone上这更简单了吗?

任何人都可以提供一个很好的方法来做到这一点,我已经把我的头发扯了一个星期,这真的让我落后于应用程序完成日期的剩余时间.

总结一下,我想:
*找到当前坐标
*获取位置时显示进度对话框
*让应用程序能够等待成功的位置或在一段时间后放弃?
*如果成功:关闭进度对话框并使用坐标运行我的其他方法来查找附近的项目.
*如果获取位置失败:取消进度对话框并显示错误消息,并鼓励用户使用菜单转到"搜索活动".
*如果用户从菜单中选择地图视图,则使用这些坐标,以显示地图上的当前位置,并使用数据库中的坐标将引脚放在所有附近的项目上.

谢谢你们,我希望我能够很好地解释自己.如有任何问题,我会定期回来查看,因为我很想完成这部分.干杯


根据要求编辑代码

locationList活动文件

protected void onStart()
{
    super.onStart();

    // ....

    new LocationControl().execute(this);
}


private class LocationControl extends AsyncTask<Context, Void, Void>
{
    private final ProgressDialog dialog = new ProgressDialog(branchAtmList.this);

    protected void onPreExecute()
    {
        this.dialog.setMessage("Determining your location...");
        this.dialog.show();
    }

    protected Void doInBackground(Context... params)
    {
        LocationHelper location = new LocationHelper();

        location.getLocation(params[0], locationResult);

        return null;
    }

    protected void onPostExecute(final Void unused)
    {
        if(this.dialog.isShowing())
        {
            this.dialog.dismiss();
        }

        useLocation(); //does the …
Run Code Online (Sandbox Code Playgroud)

gps android progressdialog locationlistener

26
推荐指数
2
解决办法
4万
查看次数