Can';我无法在Android上获取卫星阵列及其信息

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;

我正在与安卓系统上的卫星进行斗争,问题是我无法获得卫星阵列。事实上,我可以得到数组,但它没有任何元素,这就是sats.iterator().hasNext()返回false的原因。谁能告诉我为什么我的代码不起作用

这是我的Java代码

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;
}
}