标签: location-provider

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

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

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

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

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

android location location-provider

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

在Android中获取用户GPS背景的最佳方式

在我的Android应用程序中,我希望每隔几分钟获取用户当前位置,并使用Web服务更新到我的中心服务器.目前我正在使用Fused Location Provide获取用户当前位置,请参阅链接

现在我想知道经常获取用户位置和调用Web服务的最佳方法是什么.

下面是我的代码,它给了我用户当前的位置: -

     locationrequest = LocationRequest.create();
     locationrequest.setInterval(10000);
     locationclient.requestLocationUpdates(locationrequest,new com.google.android.gms.location.LocationListener() {

        @Override
        public void onLocationChanged(Location location) {
              Log.i(TAG, "Last Known Location :" + location.getLatitude() + "," + location.getLongitude());
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在从哪里我必须调用此代码.我可以在后台服务或其他地方使用它.

请提出你的想法.

TIA.

gps android location-provider fusedlocationproviderapi

94
推荐指数
6
解决办法
19万
查看次数

关闭AngularJS中的URL操作

我正在尝试使用Angular编写我的第一个Web应用程序.

在正常模式下(html5Mode关闭),Angular强制地址的哈希部分看起来像"路径"(添加前导"/"),并对特殊字符进行编码 - 例如,它允许单个"?" 哈希中的"#"和用%3F和%23替换其他的#.

有没有办法关闭此功能?我不想使用$ locationProvider/$ routeProvider功能 - 我想自己解析哈希(在我的情况下,用户将在哈希中输入一些"自由文本"以在我的网站内搜索).

我读到routeProvider无法配置为使用正则表达式...

如果打开htmlMode,则不会强制地址的散列部分看起来像路径(没有前导"/"),但它仍然编码特殊字符.

我知道有些浏览器可能会编码/转义特殊字符,但如果用户设法在其地址栏中输入一些特殊字符,那么我不想更改它.

谢谢

javascript address-bar location-provider angularjs route-provider

44
推荐指数
2
解决办法
1万
查看次数

打开/关闭gps时如何触发广播接收器?

public class BootReceiver extends BroadcastReceiver  {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
            Toast.makeText(context, "in android.location.PROVIDERS_CHANGED",
                Toast.LENGTH_SHORT).show();
            Intent pushIntent = new Intent(context, LocalService.class);
            context.startService(pushIntent);
        } else {
            Toast.makeText(context, "not in android.location.PROVIDERS_CHANGED",
                Toast.LENGTH_SHORT).show();
            Intent pushIntent = new Intent(context, LocalService.class);
            context.startService(pushIntent);
        }
    }

    @Override
    public void onLocationChanged(Location arg0) {

    }
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我需要在打开/关闭gps时触发广播接收器.调查此事并建议在app中实施最好的一个.

gps android broadcastreceiver location-provider

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

是否有内置方法来获取当前URL而没有任何查询参数?

如果我的网址是http://www.something.com/foo/bar/index.html?color=yellow&animal=rat,似乎:

  • $location.path() 将返回 foo/bar/index.html
  • $location.absUrl() 将返回 http://www.something.com/foo/bar/index.html?color=yellow&animal=rat
  • $location.url() 将返回 foo/bar/index.html?color=yellow&animal=rat

有什么功能会回来http://www.something.com/foo/bar/index.html吗?

或者我是否必须使用protcol,host,port等函数构建自己(或者自己删除查询参数)?

url location-provider angularjs

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

IllegalArgumentException:提供程序不存在:在地图V1上为null

我正在使用Google Maps API V1.我有这个错误:

     java.lang.IllegalArgumentException: provider doesn't exisit: null
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    String provider = locationManager.getBestProvider(criteria, true);

    if (provider != null)
    {

        startTime = System.currentTimeMillis(); 

        geoLocTimeOutTask = new GeoLocTimeOutTask();
        geoLocTimeOutTask.execute();

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
    }
    else
    {
        geoLocCallbackObj.geoLocationCallback(tagCallback); 

    }
Run Code Online (Sandbox Code Playgroud)

我理解错误,我的问题是,设备给我这个错误吗?我怎么能避免这个呢?

android location location-provider

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

android从最佳提供商处获取位置

我有这个代码来获得最好的提供商

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

locationListener = new MyLocationListener();
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String provider = lm.getBestProvider(criteria, true);
Location mostRecentLocation = lm.getLastKnownLocation(provider);
if(mostRecentLocation != null) {
    latid=mostRecentLocation.getLatitude();
    longid=mostRecentLocation.getLongitude();
}
lm.requestLocationUpdates(provider, 1, 0, locationListener);
Run Code Online (Sandbox Code Playgroud)

然后是听众

private class MyLocationListener implements LocationListener {

@Override
public void onLocationChanged(Location loc) {
  if (loc != null) {
    latid = loc.getLatitude();
    longid = loc.getLongitude();
    // if(loc.hasAccuracy()==true){
    accuracyd = loc.getAccuracy();
    String providershown = loc.getProvider();    
    accuracy.setText("Location Acquired. Accuracy:"
      + Double.toString(accuracyd) + "m\nProvider: "+providershown);
    accuracy.setBackgroundColor(Color.GREEN);
    // }
    userinfo=usernamevalue+"&"+Double.toString(latid)+"&"+Double.toString(longid); …
Run Code Online (Sandbox Code Playgroud)

android location location-provider

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

Fusion Location Provider API声称,位置更新无法在室内工作

问题:

Fusion Location Provider API声称,位置更新无法在室内工作.

发生了什么:

  1. 我尝试LocationClient在我的Android应用中使用最新的位置API来获取位置更新.
  2. 在我测试室外时,我的Android应用程序可以解决任何问题.
  3. 但是在室内(任何建筑物内)进行测试时,不会发生任何位置更新.

预期行为:

根据新的API,当我在室内时,我期望在建筑物周围获得一些估计的位置(因为GPS没有找到卫星信号以获得准确的位置).

我看到最新的谷歌地图Android应用程序在室内工作得很好,估计位置.

题:

我还需要注意使用新的位置API来在室内更新位置(不需要准确的位置,低精度也很好).

我正在使用Android 4.2.2版API实现Android App.我在HTC One X上测试(OS v 4.1.1)

下面是我用于使用新API获取位置更新的android代码:

步骤1:

mLocationClient = new LocationClient(this, this, this);
Run Code Online (Sandbox Code Playgroud)

第2步:

// Create the LocationRequest object
mLocationRequest = LocationRequest.create();
// Use high accuracy
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// Set the update interval to 5 seconds
mLocationRequest.setInterval(UPDATE_INTERVAL);
// Set the fastest update interval to 1 second
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
Run Code Online (Sandbox Code Playgroud)

Step3:inside onStart()方法 - 添加以下行:

// Connect the client.
mLocationClient.connect();
Run Code Online (Sandbox Code Playgroud)

Step4:inside onConnected()方法 - 添加以下行:

mLocationClient.requestLocationUpdates(mLocationRequest, …
Run Code Online (Sandbox Code Playgroud)

api android location location-provider

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

Android中的融合位置提供程序

我正在使用Fused Location Provider开发应用程序.我有个疑问.为了定期获取位置,它使用requestLocationUpdates().但是从哪个来源获取WIFI或GPS或网络的位置.在我的应用程序中,仅当WiFi处于开启状态时,它才会定期获取位置.当WiFi处于关闭状态时,它无法获得该位置(它应该从GPS或网络的其他来源获得位置.但它永远不会获得位置.或者我必须为GPS和网络编写听众).我不知道是什么问题.谁能帮我.

并且,它是否仅适用于所有提供商(Wifi,GPS,网络)或其他.

public void checkPlay(){

  int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    if (resp == ConnectionResult.SUCCESS) {
        locationClient = new LocationClient(this, this, this);
        locationClient.connect();
    } else {
        Toast.makeText(this, "Google Play Service Error " + resp,
                Toast.LENGTH_LONG).show();

    }
 }


public void onConnected(Bundle arg0) {
    // TODO Auto-generated method stub


    if (locationClient != null && locationClient.isConnected()) {

        locationRequest = LocationRequest.create();
        locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        locationRequest.setInterval(100);
        locationClient.requestLocationUpdates(locationRequest, this);

    }
}

        public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    try {
        if (location != null) { …
Run Code Online (Sandbox Code Playgroud)

gps android google-maps location-provider google-maps-android-api-2

9
推荐指数
2
解决办法
1万
查看次数

如何使用GPS和网络提供商在Android中获取当前位置的纬度和经度值

在我的Android应用程序中,我想使用GPS提供商和网络提供商进行位置更新5秒钟.首先,我想使用GPS提供商(因为它提供了准确的结果),如果GPS提供商返回纬度和经度为0.0和0.0,那么我想使用网络提供商,但我不想同时使用这两个提供商同时.有什么建议?

networking gps android location-provider

8
推荐指数
1
解决办法
2万
查看次数