Can';我无法在Android上获取卫星阵列及其信息
我正在与安卓系统上的卫星进行斗争,问题是我无法获得卫星阵列。事实上,我可以得到数组,但它没有任何元素,这就是sats.iterator().hasNext()返回false的原因。谁能告诉我为什么我的代码不起作用 这是我的Java代码Can';我无法在Android上获取卫星阵列及其信息,android,satellite,Android,Satellite,我正在与安卓系统上的卫星进行斗争,问题是我无法获得卫星阵列。事实上,我可以得到数组,但它没有任何元素,这就是sats.iterator().hasNext()返回false的原因。谁能告诉我为什么我的代码不起作用 这是我的Java代码 package com.example.location; import java.util.Iterator; import android.support.v7.app.ActionBarActivity; import android.util.Log;
package com.example.location;
import java.util.Iterator;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.content.Context;
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.LocationManager;
import android.os.Bundle;
public class MainActivity extends ActionBarActivity implements
GpsStatus.Listener {
GpsStatus gpsStatus;
GpsSatellite gpsSatellite;
Iterable<GpsSatellite> sats;
LocationManager locationManager = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationManager = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
locationManager.addGpsStatusListener(this);
}
public void onclick(View v) {
TextView tvNum = (TextView) findViewById(R.id.tvNum);
onGpsStatusChanged(GpsStatus.GPS_EVENT_SATELLITE_STATUS);
if (gpsStatus != null) {
int num = gpsStatus.getMaxSatellites();
Log.d("Number of Satellines: ", String.valueOf(num));
tvNum.setText(num + "");
if (sats != null) {
Log.d("Get Satellites: ", String.valueOf("Ok"));
Log.d("Sats", String.valueOf(sats.toString()));
Iterator<GpsSatellite> sat = sats.iterator();
if (sat != null) {
Log.d("get done", String.valueOf(sat.toString()));
Log.d("hasNext_State",
String.valueOf(sats.iterator().hasNext()));
int i = 1;
while (sat.hasNext()) {
Log.d("got it", String.valueOf("OK"));
GpsSatellite sat1 = sat.next();
Log.d("Satellite " + i + ":",
String.valueOf(sat1.getSnr()));
i++;
}
} else
Log.d("Can't get f1", String.valueOf("..."));
} else
Log.d("Can't get f2", String.valueOf("..."));
} else
Log.d("Can't get f3", String.valueOf("..."));
}
@Override
public void onGpsStatusChanged(int event) {
// TODO Auto-generated method stub
if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
gpsStatus = locationManager.getGpsStatus(null);
sats = gpsStatus.getSatellites();
} else
gpsStatus = null;
}
}
package com.example.location;
导入java.util.Iterator;
导入android.support.v7.app.ActionBarActivity;
导入android.util.Log;
导入android.view.view;
导入android.widget.TextView;
导入android.content.Context;
导入android.location.GpsSatellite;
导入android.location.GpsStatus;
导入android.location.LocationManager;
导入android.os.Bundle;
公共类MainActivity扩展了ActionBarActivity实现
GpsStatus.Listener{
GpsStatus GpsStatus;
GpsSatellite GpsSatellite;
可移植SAT;
LocationManager LocationManager=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationManager=(locationManager)此
.getSystemService(Context.LOCATION\u服务);
locationManager.addGpsStatusListener(此);
}
公共void onclick(视图v){
TextView tvNum=(TextView)findViewById(R.id.tvNum);
ONGPSSTATUS变更(GpsStatus.GPS事件卫星状态);
if(gpsStatus!=null){
int num=gpsStatus.getMaxSatellites();
Log.d(“卫星数:”,String.valueOf(num));
tvNum.setText(num+“”);
如果(sats!=null){
Log.d(“获取卫星:”,String.valueOf(“确定”);
Log.d(“Sats”,String.valueOf(Sats.toString());
迭代器sat=sats.Iterator();
如果(sat!=null){
Log.d(“完成”,String.valueOf(sat.toString());
Log.d(“hasNext_状态”,
String.valueOf(sats.iterator().hasNext());
int i=1;
while(sat.hasNext()){
Log.d(“明白了”,String.valueOf(“确定”);
GpsSatellite sat1=sat.next();
日志d(“卫星”+i+”:“,
字符串.valueOf(sat1.getSnr());
i++;
}
}否则
Log.d(“无法获取f1”,String.valueOf(“…”);
}否则
Log.d(“无法获取f2”,String.valueOf(“…”);
}否则
Log.d(“无法获取f3”,String.valueOf(“…”);
}
@凌驾
公共无效onGpsStatusChanged(内部事件){
//TODO自动生成的方法存根
如果(事件==GpsStatus.GPS\u事件\u卫星\u状态){
gpsStatus=locationManager.getGpsStatus(null);
sats=gpsStatus.getSatellites();
}否则
gpsStatus=null;
}
}