0

これまでに Android パッケージを使用したことがなく、現在の位置を取得したいだけです。オンラインで少し調べた後、ここまでたどり着きました。

import android.location.Location;
import android.location.LocationManager; 
import android.content.*;

public class CurPosGetter{

public static double[] getPosition(){
    LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    Location location = (Location) lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    double longitude = location.getLongitude();
    double latitude = location.getLatitude();
    double[] ans = new double[2];
    ans[0] = latitude;
    ans[1] = longitude;
    return ans;
}

public static void main (String [] args){
    double[] pos = getPosition();
    System.out.println(pos[0] + " , " + pos[1]);
}

}

問題は「getSystemService」の行にあります。Context の javadoc を読むと、このメソッドを呼び出すことでContext.LOCATION_SERVICE現在の位置を取得できることがわかりますが、getSystemService の呼び出し方法がよくわかりません。これは単純な問題であり、使用しているクラスがわかりません。

4

4 に答える 4

1

getSystemService() は Context クラスのメソッドです。あなたのクラスは Context をサブクラス化していません。一般に、Activity (Contextのサブクラス) で getSystemService() を使用します。

于 2013-04-06T00:03:27.253 に答える
0

SEMC Xperia Playでテストされたこの作業コードを試してください

public class CLASSNAME extends Activity //Use your class name(It will done automatically in eclipse when you start a project)
{

 private LocationManager 
 locationManagerNetwork;



 @Override

 public void onCreate(Bundle savedInstanceState)

 {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);



  locationManagerNetwork = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

  android.location.Location location2 = locationManagerNetwork.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);


  if (location2 != null) 
   {       

    String message = String
.format("Yout location : \n Longitude: %1$s \n Latitude: %2$s",
location2.getLongitude(), location2.getLatitude());


 File sdcard = Environment.getExternalStorageDirectory();

       {


        try
         {

          FileWriter filenew = new FileWriter(sdcard + "/FOLDERNAME/network.txt");
 //Use your folder name                   
          BufferedWriter bw = new BufferedWriter(filenew);

          bw.write(message);

          bw.close();

         }

        catch (IOException e) 
         {

         }}}}}
于 2013-04-06T07:47:10.753 に答える