0

gps でユーザーの位置情報を取得したいのですが、これが私のコードです

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        t=(TextView)findViewById(R.id.textView1);


        LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        LocationListener mlocListener = new MyLocationListener();

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

    }

    public class MyLocationListener implements LocationListener
    {

        @Override
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub
            double lat=location.getLatitude();
            double longt= location.getLongitude();


            Geocoder gc=new Geocoder(getApplicationContext(),Locale.getDefault());
               try
               {
                   List <Address> adresses=gc.getFromLocation(lat, longt, 1);
                   StringBuilder sb=new StringBuilder();
                   if(adresses.size()>0)
                   {
                       Address address=adresses.get(0);
                       for(int i=0;i<address.getMaxAddressLineIndex();i++)
                           sb.append(address.getAddressLine(i)).append("\n");

                       sb.append(address.getLocality()).append("\n");
                       sb.append(address.getPostalCode()).append("\n");
                       sb.append(address.getCountryName());

                   }

                   String a="Latitude:"+lat+"\nLongtitude:"+longt+"\nAddress:"+sb.toString();
                   t.setText(a);
               }

               catch(Exception e)
               {
                   t.setText("Error.\n"+e.toString());
               }
        }

そして私はすべての許可を与えました。

プラットフォームは Android 2.2.3、デバイスは HTC Wildfire S

コードはエラーをスローしませんが、動作していません

誰にもアイデアはありますか?

4

1 に答える 1

0

無料アプリか何かで、GPS 位置情報を受信する必要があることを確認しましたか? 30 分、60 分、2 時間の場所の修正が得られないことがあります... 以前に同じ場所で場所を修正したことがある場合でも。私がいる場所では、屋内では修正できません。ただし、外を歩き回ってから中に戻ると修正されます。

コードは私の HTC で正常に実行されます (外を歩いた後)。これは今のところ何の影響もありませんが、変更することをお勧めします:

LocationListener mlocListener = new MyLocationListener();

に:

MyLocationListener mlocListener = new MyLocationListener();

MyLocationListener をより複雑にするにつれて。

于 2012-05-25T18:19:37.257 に答える