Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中获取Gps坐标_Android - Fatal编程技术网

在android中获取Gps坐标

在android中获取Gps坐标,android,Android,我无法以编程方式获取gps。堆栈溢出中给出了许多示例,但仍然得到空值。我想做的是,我有一个按钮,点击按钮,我想获得gps坐标。这是我获取gps坐标的代码 在单击按钮时,我刚刚调用了getlocation() 有人能帮忙吗?这里出了什么问题?这一个对我有用,它还有一些其他传感器 您还需要在AndroidManifest文件中配置前提条件 package at.fhb.g.sensor; import java.util.ArrayList; import java.util.List; imp

我无法以编程方式获取gps。堆栈溢出中给出了许多示例,但仍然得到空值。我想做的是,我有一个按钮,点击按钮,我想获得gps坐标。这是我获取gps坐标的代码

在单击按钮时,我刚刚调用了getlocation()


有人能帮忙吗?这里出了什么问题?

这一个对我有用,它还有一些其他传感器 您还需要在AndroidManifest文件中配置前提条件

package at.fhb.g.sensor; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.hardware.SensorListener; import android.hardware.SensorManager; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import at.fhb.g.main.MainControler; /** * @author tomas *the sensor class calls the onsensorchanged method on every item in the onsensorchangedlistener list when a sensor change happens */ public class Sensor implements SensorListener, LocationListener { // commit comment private SensorManager sensorManager; private final MainControler context; private float accelx; private float accely; private float accelz; private float rotY; private float rotX; private float rotZ; private List sensorsChangedListeners=new ArrayList(); private LocationManager locationManager; private Location lastKnownLocation; // private float kRotX; private float kRotY; private float kRotZ;//TODO remove kalibrate junk private CFilter filter; // private float[] rotBuffY; // private float[] rotBuffZ; // private float[] rotBuffX; private float theG; private void initGps() { locationManager=(LocationManager) context.getSystemService(Activity.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, context.getConfig().getGpsUpdateTime(), context.getConfig().getGpsMinDistance(), this) ; lastKnownLocation=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); } public Sensor(MainControler context) { this.context = context; filter=new CFilter(context); // rotBuffX=new float[context.getConfig().getRotBufferSize()]; // rotBuffZ=new float[context.getConfig().getRotBufferSize()];TODO remove this kalibrate junk // rotBuffY=new float[context.getConfig().getRotBufferSize()]; sensorManager = (SensorManager) context.getSystemService(Activity.SENSOR_SERVICE); onResume(); initGps(); } /** * @param listener ads a listener to the lists */ public void addOnSensorChangeListener(SensorsChangedListener listener) { sensorsChangedListeners.add(listener); } /** * this method needs to be called in the activity onResume function */ public void onResume() { // register this class as a listener for the orientation and accelerometer sensors sensorManager.registerListener(this, SensorManager.SENSOR_ORIENTATION |SensorManager.SENSOR_ACCELEROMETER, SensorManager.SENSOR_DELAY_FASTEST); System.out.println("on resume"); } /** * this method needs to be called in the activity onStop function */ public void onStop() { // unregister listener sensorManager.unregisterListener(this); } public void onAccuracyChanged(int sensor, int accuracy) { // TODO Auto-generated method stub } public void onSensorChanged(int sensor, float[] values) { synchronized(this){ //TODO G float g = (float) Math.sqrt( accelx* accelx+ accely* accely+ accelz* accelz ); theG=filter.filter(g); //filter TODO replace accelx wit theG // rotY=filter.filter(rotY); if (sensor == SensorManager.SENSOR_ORIENTATION) { rotX= values[0]; rotY= values[1]; rotZ= values[2]; } if (sensor == SensorManager.SENSOR_ACCELEROMETER) { accelx=values[0]; accely= values[1]; accelz= values[2]; } //shiftbuffer // shiftArrayLeft(rotBuffX); // shiftArrayLeft(rotBuffY); // shiftArrayLeft(rotBuffZ); // // //save to buffer // rotBuffX[rotBuffX.length-1]=rotX; // rotBuffY[rotBuffY.length-1]=rotY; // rotBuffZ[rotBuffZ.length-1]=rotZ; notifySensorChanged(); } } /** * @return current g force */ public float getTheG() { return theG; } // // private void shiftArrayLeft(float[] a) { // for (int i = 0; i 包装at.fhb.g.传感器; 导入java.util.ArrayList; 导入java.util.List; 导入android.app.Activity; 导入android.hardware.SensorListener; 导入android.hardware.SensorManager; 导入android.location.location; 导入android.location.LocationListener; 导入android.location.LocationManager; 导入android.os.Bundle; 进口at.fhb.g.main.main控制器; /** *@作者托马斯 *当传感器发生更改时,sensor类对onsensorchangedlistener列表中的每个项调用onsensorchanged方法 */ 公共类传感器实现SensorListener、LocationListener{ //提交评论 私人传感器管理器传感器管理器; 私人最终控制人背景; 私人浮动加速器; 私人浮动加速; 私有浮动加速; 私人浮子; 私人浮动轮换; 私人浮动旋转木马; 私有列表sensorsChangedListeners=new ArrayList(); 私人场所经理场所经理; 私人位置; //私人浮动克朗; 私人浮动克洛蒂; private float kRotZ;//要清除kalibrate垃圾吗 专用过滤器; //私人浮子[]罗特布菲; //私人浮子[]罗茨; //私人浮动[]rotBuffX; 私人股本; 私有void initGps(){ locationManager=(locationManager)context.getSystemService(Activity.LOCATION\u服务); locationManager.requestLocationUpdates(locationManager.GPS_提供程序,context.getConfig().getGpsUpdateTime(),context.getConfig().getGpsMinDistance(),this); lastKnownLocation=locationManager.getLastKnownLocation(locationManager.GPS\U提供程序); } 公共传感器(主控制器上下文){ this.context=上下文; 过滤器=新的过滤器(上下文); //rotBuffX=newfloat[context.getConfig().getRotBufferSize()]; //rotBuffZ=new float[context.getConfig().getRotBufferSize()];删除此kalibrate垃圾 //rotBuffY=newfloat[context.getConfig().getRotBufferSize()]; sensorManager=(sensorManager)context.getSystemService(Activity.SENSOR\u SERVICE); onResume(); initGps(); } /** *@param listener将侦听器广告到列表中 */ public void addonsensorchengelistener(传感器侦听器侦听器){ sensorsChangedListeners.add(侦听器); } /** *需要在activity onResume函数中调用此方法 */ 恢复时公开作废(){ //将此类注册为方向和加速计传感器的侦听器 sensorManager.registerListener(此, SensorManager.SENSOR_方向| SensorManager.SENSOR_加速计, 传感器管理器。传感器延迟(最快); 系统输出打印号(“在简历上”); } /** *需要在activity onStop函数中调用此方法 */ 公共void onStop(){ //取消注册侦听器 sensorManager.UnregistereListener(此); } 精度更改时的公共无效(int传感器、int精度){ //TODO自动生成的方法存根 } 已更改传感器上的公共void(int传感器,浮点[]值){ 已同步(此){ //待办事项 浮点g=(浮点)数学sqrt(accelx*accelx+accely*accely+accelz*accelz); g=过滤器。过滤器(g); //要更换accelx的滤清器,请使用G //rotY=过滤器。过滤器(rotY); if(传感器==传感器管理器。传感器方向){ rotX=值[0]; rotY=数值[1]; rotZ=数值[2]; } if(传感器==传感器管理器.传感器\加速计){ accelx=数值[0]; 加速度=数值[1]; accelz=数值[2]; } //换档缓冲器 //左班长(rotBuffX); //左班长(罗巴菲); //左班长(罗夫兹); // ////保存到缓冲区 //rotBuffX[rotBuffX.length-1]=rotX; //rotBuffY[rotBuffY.length-1]=rotY; //rotBuffZ[rotBuffZ.length-1]=rotZ; notifySensorChanged(); } } /** *@返回电流g力 */ 公共浮点数getTheG(){ 返回G; } // //私有void shiftArrayLeft(float[]a){ //对于(int i=0;i
这个对我有用它还有一些其他的传感器 您还需要在AndroidManifest文件中配置前提条件

package at.fhb.g.sensor; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.hardware.SensorListener; import android.hardware.SensorManager; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import at.fhb.g.main.MainControler; /** * @author tomas *the sensor class calls the onsensorchanged method on every item in the onsensorchangedlistener list when a sensor change happens */ public class Sensor implements SensorListener, LocationListener { // commit comment private SensorManager sensorManager; private final MainControler context; private float accelx; private float accely; private float accelz; private float rotY; private float rotX; private float rotZ; private List sensorsChangedListeners=new ArrayList(); private LocationManager locationManager; private Location lastKnownLocation; // private float kRotX; private float kRotY; private float kRotZ;//TODO remove kalibrate junk private CFilter filter; // private float[] rotBuffY; // private float[] rotBuffZ; // private float[] rotBuffX; private float theG; private void initGps() { locationManager=(LocationManager) context.getSystemService(Activity.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, context.getConfig().getGpsUpdateTime(), context.getConfig().getGpsMinDistance(), this) ; lastKnownLocation=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); } public Sensor(MainControler context) { this.context = context; filter=new CFilter(context); // rotBuffX=new float[context.getConfig().getRotBufferSize()]; // rotBuffZ=new float[context.getConfig().getRotBufferSize()];TODO remove this kalibrate junk // rotBuffY=new float[context.getConfig().getRotBufferSize()]; sensorManager = (SensorManager) context.getSystemService(Activity.SENSOR_SERVICE); onResume(); initGps(); } /** * @param listener ads a listener to the lists */ public void addOnSensorChangeListener(SensorsChangedListener listener) { sensorsChangedListeners.add(listener); } /** * this method needs to be called in the activity onResume function */ public void onResume() { // register this class as a listener for the orientation and accelerometer sensors sensorManager.registerListener(this, SensorManager.SENSOR_ORIENTATION |SensorManager.SENSOR_ACCELEROMETER, SensorManager.SENSOR_DELAY_FASTEST); System.out.println("on resume"); } /** * this method needs to be called in the activity onStop function */ public void onStop() { // unregister listener sensorManager.unregisterListener(this); } public void onAccuracyChanged(int sensor, int accuracy) { // TODO Auto-generated method stub } public void onSensorChanged(int sensor, float[] values) { synchronized(this){ //TODO G float g = (float) Math.sqrt( accelx* accelx+ accely* accely+ accelz* accelz ); theG=filter.filter(g); //filter TODO replace accelx wit theG // rotY=filter.filter(rotY); if (sensor == SensorManager.SENSOR_ORIENTATION) { rotX= values[0]; rotY= values[1]; rotZ= values[2]; } if (sensor == SensorManager.SENSOR_ACCELEROMETER) { accelx=values[0]; accely= values[1]; accelz= values[2]; } //shiftbuffer // shiftArrayLeft(rotBuffX); // shiftArrayLeft(rotBuffY); // shiftArrayLeft(rotBuffZ); // // //save to buffer // rotBuffX[rotBuffX.length-1]=rotX; // rotBuffY[rotBuffY.length-1]=rotY; // rotBuffZ[rotBuffZ.length-1]=rotZ; notifySensorChanged(); } } /** * @return current g force */ public float getTheG() { return theG; } // // private void shiftArrayLeft(float[] a) { // for (int i = 0; i 包装at.fhb.g.传感器; 导入java.util.ArrayList; 导入java.util.List; 导入android.app.Activity; 导入android.hardware.SensorListener; 导入android.hardware.SensorManager; 导入android.location.location; 导入android.location.LocationListener; 导入android.location.LocationManager; 导入android.os.Bundle; 进口at.fhb.g.main.main控制器; /** *@作者托马斯 *当传感器发生更改时,sensor类对onsensorchangedlistener列表中的每个项调用onsensorchanged方法 */ 公共类传感器实现SensorListener、LocationListener{ //提交评论 私人传感器管理器传感器管理器; 私人最终控制人背景; 私人浮动加速器; 私人浮动加速; 私有浮动加速; 私人浮子; 私人浮动轮换; 私人浮动旋转木马; 私有列表sensorsChangedListeners=new ArrayList(); 私人失水事故