查找当前位置,当应用程序在后台运行不工作 [英] Finding current Location when the application is running in background is not working

查看:158
本文介绍了查找当前位置,当应用程序在后台运行不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想搞清楚当应用程序在后台运行的当前位置。

我看看下面code查找在后台运行的服务的当前位置。但它不工作。

 进口android.app.Service;
进口android.content.Context;
进口android.content.Intent;
进口android.os.Bundle;
进口android.os.IBinder;
进口android.util.Log;
进口android.widget.Toast;
进口android.location.Location;
进口android.location.LocationListener;
进口android.location.LocationManager;
公共类为MyService扩展服务{
私有静态的LocationManager mlocManager;
私有静态最后弦乐TAG =为MyService
@覆盖
公众的IBinder onBind(意向意图){
    返回null;
}@覆盖
公共无效的onCreate(){
    Toast.makeText(这一点,我的服务创建Toast.LENGTH_LONG).show();
    Log.d(TAG的onCreate);}@覆盖
公共无效的onDestroy(){
    Toast.makeText(这一点,我的服务已停止,Toast.LENGTH_LONG).show();
    Log.d(TAG的onDestroy);}@覆盖
公共无效调用onStart(意向意图,诠释startid){
    Toast.makeText(这一点,我开始服务启动,Toast.LENGTH_LONG).show();
    Log.d(TAG,在onStart);
     mlocManager =(的LocationManager)getSystemService(Context.LOCATION_SERVICE);    LocationListener的mlocListener =新MyLocationListener();
    //位置newloc =新位置();
    mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,mlocListener);    Toast.makeText(这一点,hiiiits创造,Toast.LENGTH_LONG).show();}
/ *类我的位置监听器* /公共类MyLocationListener实现LocationListener的{@覆盖公共无效onLocationChanged(位置LOC){
    Log.d(TAGonlocationchnage);
loc.getLatitude();loc.getLongitude();字符串文本=我目前的位置是:+Latitud =+ loc.getLatitude()+Longitud =+ loc.getLongitude();Toast.makeText(getApplicationContext(),文本,Toast.LENGTH_SHORT).show();}@覆盖公共无效onProviderDisabled(字符串提供商){Toast.makeText(getApplicationContext(),全球定位系统已禁用,Toast.LENGTH_SHORT).show();}@覆盖公共无效onProviderEnabled(字符串提供商){Toast.makeText(getApplicationContext(),GPS功能Toast.LENGTH_SHORT).show();}@覆盖公共无效onStatusChanged(字符串提供商,INT地位,捆绑演员){}} / *类MyLocationListener结束* /
}


解决方案

我认为你需要使用GPS当前的经纬度值。

请点击此链接.. 点击链接

我已经尝试过了,在Android手机进行测试。它的工作。

请注意:
仿真我们没有得到CURENT GPS位置。你必须和应该安装在手机应用程序..
首先你手机的GPS后,试试吧,它会工作。

有一个愉快的一天。

I want to find out current location when the Application is running in background

I Have below code for finding current location in background running services. But its not working.

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 */
}

解决方案

I think you need Current Latitude and Longitude values using GPS..

follow this link.. Click link

I already tried it and test it in android mobile phone.. Its working.

Note : emulator we are not get the Curent GPS location.. You must and should install your application in phone.. First you ON the GPS in mobile phone after try it, it will work.

have a nice day.

这篇关于查找当前位置,当应用程序在后台运行不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆