android - 应用程序在后台运行时查找当前位置不起作用

标签 android gps

我想在应用程序在后台运行时找出当前位置

我有以下代码用于在后台运行的服务中查找当前位置。但它不起作用。

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
public class MyService extends Service {
private static LocationManager mlocManager;
private static final String TAG = "MyService";


@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onCreate() {
    Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onCreate");

}

@Override
public void onDestroy() {
    Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onDestroy");

}

@Override
public void onStart(Intent intent, int startid) {
    Toast.makeText(this, "start My Service Started", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onStart");
     mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

    LocationListener mlocListener = new MyLocationListener();
    //Location newloc= new Location();


    mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

    Toast.makeText(this, "hiiiits created", Toast.LENGTH_LONG).show();

}
/* Class My Location Listener */

public class MyLocationListener implements LocationListener

{

@Override

public void onLocationChanged(Location loc)

{
    Log.d(TAG, "onlocationchnage");
loc.getLatitude();

loc.getLongitude();

String Text ="My current location is: " +

"Latitud = " + loc.getLatitude() +

"Longitud = " + loc.getLongitude();

Toast.makeText( getApplicationContext(),

Text,

Toast.LENGTH_SHORT).show();

}

@Override

public void onProviderDisabled(String provider)

{

Toast.makeText( getApplicationContext(),

"Gps Disabled",

Toast.LENGTH_SHORT ).show();

}

@Override

public void onProviderEnabled(String provider)

{

Toast.makeText( getApplicationContext(),

"Gps Enabled",

Toast.LENGTH_SHORT).show();

}

@Override

public void onStatusChanged(String provider, int status, Bundle extras)

{

}

}/* End of Class MyLocationListener */
}

最佳答案

我认为您需要使用 GPS 的当前纬度和经度值..

点击此链接.. Click link

我已经尝试过并在安卓手机上测试过。它可以工作。

注意: 模拟器我们无法获取当前 GPS 位置。您必须并且应该在手机中安装您的应用程序。 先打开手机里的GPS试试看,就可以了。

祝你有美好的一天。

关于android - 应用程序在后台运行时查找当前位置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882436/

相关文章:

android - gps提前一天返回?

java - 将时间 "PT10H30M"转换为 "10:30 AM"时间JAVA Android

android - 区分位置不可用和位置不支持 Android

android - 如何检查android中的设备是否支持特定语言

java - android中调用AsyncTask.cancel(true)时AsyncTask不会立即调用 `onCancelled`

c# - 是否可以将 GPS 系统集成到 asp.net web 应用程序中?

android - 使用 GPS 从电话号码中查找电话的位置

java - 映射返回 Null 或空 Android Studio

android - Rxjava为什么没有执行onNext方法

java - 除非您更新 Google Play 服务,否则 com.tools.fd.runtime.BootstrapApplication 不会运行