相关疑难解决方法(0)

Android:从最佳可用提供商处获取当前位置

我有一些Android代码,需要从GPS,网络或任何可用的地方快速获得最佳可用位置.准确性不如速度重要.

获得最佳可用位置肯定是一项非常标准的任务.然而,我找不到任何代码来证明它.Android位置代码要求您指定条件,注册更新和等待 - 如果您有详细的标准并且不介意等待,这很好.

但我的应用程序需要更多地工作,就像地图应用程序第一次找到你时 - 从任何可用的提供程序工作,只需检查位置是不是过时或过时.

我试图推出自己的代码来做到这一点,但我遇到了问题.(它在IntentService内部发生上传,如果这有任何区别.我已经包含了所有信息代码.)这段代码出了什么问题?

@Override
protected void onHandleIntent(Intent arg0) {
    testProviders();
    doUpload();
}
private boolean doUpload() {
       int j = 0;
       // check if we have accurate location data yet - wait up to 30 seconds
       while (j < 30) {
           if ((latString == "") || (lonString == "")) {
               Log.d(LOG_TAG, "latlng null");
               Thread.sleep(1000);
               j++;
       } else {
                Log.d(LOG_TAG, "found lat " + latString + " and lon " + lonString);
            break;
       }
       //do the upload …
Run Code Online (Sandbox Code Playgroud)

android

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

我每次要求更新位置时都应该使用android LocationManager.getBestProvider吗?

我正在使用Google API和MapActivity,MapView等.
当我需要获取当前位置时,我会在第一时间使用此代码:

myLocationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
// Sets the criteria for a fine and low power provider
Criteria crit = new Criteria();
crit.setAccuracy(Criteria.ACCURACY_FINE);
crit.setPowerRequirement(Criteria.POWER_LOW);    
// Gets the best matched provider, and only if it's on
String provider = myLocationManager.getBestProvider(crit, true);
// If there are no location providers available
if (provider == null){
    OnClickListener listener = new OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            // Closes the activity
            finish();
        }
    };
    Utils.getInstance().showAlertDialog(this, R.string.warning_dialog_title,
                               R.string.no_location_providers_error_message,
                            android.R.drawable.ic_dialog_alert, false, listener);
}
// Location …
Run Code Online (Sandbox Code Playgroud)

android locationmanager android-mapview

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

我们可以通过Android中的用户电话号码找到用户吗?

是否可以通过Android中的用户电话号码找到用户?如果可以将SMS发送给用户,那么我们还可以检索或了解我们发送SMS的用户的位置.

我的意思是可以编程以下功能:

  1. 应用程序向用户的手机发送短信
  2. 应用程序通过SMS发件人在用户的电话上接收短信
  3. 应用程序获取用户手机的位置坐标
  4. 应用程序通过SMS将位置坐标发送给SMS发件人

还可以通过除SMS,EMAIL或CALL之外的任何其他方式通过用户的电话号码检索用户所需的位置吗?

ViberVChat应用程序如何通过电话号码查找用户位置?

以下是应用商店中的一些应用:

  1. 细胞追踪器
  2. 手机号码和电话位置
  3. 手机号码定位器

寻求可靠的答案.

android geolocation

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

Android - 可靠地获取当前位置

我的应用程序在特定时间检查用户是否在指定位置.我使用警报管理器启动进行此调用的服务:

locationManager.requestLocationUpdates(bestProvider, 0, 0, listener);
Run Code Online (Sandbox Code Playgroud)

还检查:

 locationManager.getLastKnownLocation(bestProvider);
Run Code Online (Sandbox Code Playgroud)

但是我在真实设备上运行时遇到了问题.一方面,getLastKnownLocation最有可能是最后的地方的GPS是上,这可以在任何地方(即,它可以从用户的当前位置英里).所以我只是等待requestLocationUpdates回调,如果他们在两分钟内没有回复,请删除听众并放弃,对吧?

错了,因为如果用户的位置已经是稳定的(即,他们使用GPS最近并没有移动),然后我的听众将永远不会被调用,因为位置不会改变.但GPS将一直运行,直到我的听众被移除,耗尽电池......

获取当前位置的正确方法是什么,而不会误认为当前位置的旧位置?我不介意等几分钟.

编辑:有可能我错误的听众没有被调用,它可能只需要比我想象的更长一点...很难说.我还是很欣赏一个明确的答案.

gps android geolocation

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

Android中更快的GPS修复

我注意到像GPS Status这样的应用程序可以很快得到修复.当我尝试在自己的应用程序中修复它需要更多时间.有人知道为什么会这样吗?他们是否使用API​​的隐藏部分来强制GPS更快地连接?

这是我使用的

LocationManager loc = (LocationManager) context
            .getSystemService(Context.LOCATION_SERVICE);
loc.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
            listener);
Run Code Online (Sandbox Code Playgroud)

我希望GPS尽可能频繁地给出结果,因为我需要它用于AR应用程序:)虽然我为更新频率设置了1000毫秒和1米的设置,但修复速度没有可察觉的差异.

gps android

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

如何在Google地图中显示我当前的位置?

我想在谷歌地图中显示我当前的位置.它应该是动态的,即长时间和纬度应该动态设置.

就像现在我在新德里,如果我开始我的Android应用程序,我现在的位置应该在新德里显示,如果我去其他城市,它应该改变.

android

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

获取当前位置的Android最佳方式

在以下场景中获取android当前位置的最佳方法是什么,

  1. 如果GPS不可用,请从网络提供商处获取位置

  2. 如果GPS可用并且可以获得当前位置,请从GPS提供商处获取位置

  3. 如果GPS可用但无法获得当前位置(即连续搜索位置),请从网络提供商处获取位置.

    现在如果gps不可用,我可以从网络获取位置,我们非常感谢满足上述情况的最佳答案.提前致谢.

gps android currentlocation

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

LocationAvailability无可用位置

Google FusedLocationProviderApifor Android最近在过去几个月内被弃用,FusedLocationProviderClient作为其继任者,因此我最近更新了客户端应用中使用的位置API以使用新的API.

每次onLocationAvailability被触发时LocationCallback我都会在locationAvailability.isLocationAvailable()返回时通知用户false,但看起来这种情况比我在某些设备上预期的更频繁.我在前台内运行这些位置更新Service,这些位置更新保持一致至关重要.有没有办法确定这种失败的原因

  1. 我们不会向最终用户表明任何误报
  2. 我们可以尝试解决问题,或者至少向最终用户报告他们应该做些什么?

在我看来,被弃用的API提供了对这些问题的更多洞察,因为它与它一起使用GoogleApiClient或者我可能缺少一些较小的细节.

android google-api

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

FusedLocationClient 不调用 onLocationResult

我目前正在创建一个位置客户端,目前我有

 public void startUpdatingLocationProcess(Context context) {

     parentContext = context;

    if (mFusedLocationClient == null){
        mFusedLocationClient = LocationServices.getFusedLocationProviderClient(parentContext);

        LocationRequest mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(5000);
        mLocationRequest.setFastestInterval(5000);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

        if (ContextCompat.checkSelfPermission(parentContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
        {
            mFusedLocationClient.requestLocationUpdates(mLocationRequest, new LocationCallback(){
                @Override
                public void onLocationResult(LocationResult locationResult) {

                    onLocationChanged(locationResult.getLastLocation());
                }

            } , Looper.myLooper());

         }


}
Run Code Online (Sandbox Code Playgroud)

这是在我想在整个应用程序生命周期中运行的 LocationApi 类中,这个特定的应用程序运行许多活动,所以我不想在每次销毁和创建新活动时“重新创建”请求。

允许并检查 FINE_LOCATION 的权限,logcat 中没有错误,代码在创建 mFusedLocationClient 对象时运行 requestLocationUpdates 方法,但它从不调用“onLocationResult”方法。

使用这个 api 有什么我遗漏的吗?

android fusedlocationproviderclient

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

在Android中查找当前位置的经度和纬度

我想在Android应用程序中找到我当前位置的纬度和经度.当我用手机稳定时,我只需要它.

我的代码是:

LocationManager locationManager;
    locationManager = (LocationManager)getSystemService
    (Context.LOCATION_SERVICE);
    Location location = locationManager.getLastKnownLocation
    (LocationManager.GPS_PROVIDER);


    locationManager.requestLocationUpdates(                
             LocationManager.GPS_PROVIDER,0,0,(LocationListener) this);
    updateWithNewLocation(location);
    }

    private void updateWithNewLocation(Location location) {
    TextView myLocationText = (TextView)findViewById(R.id.myLocationText);

    String latLongString;

    if (location != null) {
    double lat = location.getLatitude();
    double lng = location.getLongitude();
    latLongString = "Lat:" + lat + "\nLong:" + lng;
    } else {
    latLongString = "No location found";
    }

    myLocationText.setText("Your Current Position is:\n" +
    latLongString);
    }
Run Code Online (Sandbox Code Playgroud)

在模拟器上运行后,我总是找到"找不到位置".为什么会这样?

android

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