2012-04-19 13 views
4

私はアンドロイドアプリケーションを開発しています。ユーザがアプリケーションにログインすると、すぐにその場所を見つける必要があります。私は地図を表示したくない、場所はユーザーの知識なしに特定する必要があります。 GoogleマップAPIを使用してこれを行うことは可能ですか?またはこれを行う他の方法がありますか?これを行うための最善の方法はそうのようなPASSIVEロケーションプロバイダを使用することですユーザーの場所を見つける

おかげ

答えて

3

はこれを試してみてください、

protected LocationManager locationManager; 
     Context context; 
     public String gps_loc; 

     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
     locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
     locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 10, new MyLocationListener()); 
private class MyLocationListener implements LocationListener { 

     public void onLocationChanged(Location location) { 
      gps_loc = String.format("%1$s" +"-"+"%2$s",location.getLongitude(), location.getLatitude()); 
      Toast.makeText(Clockin.this, gps_loc, Toast.LENGTH_SHORT).show(); 
     } 
     public void onStatusChanged(String s, int i, Bundle b) { 
      Toast.makeText(class.this, "Provider status changed", Toast.LENGTH_SHORT).show(); 
     } 
     public void onProviderDisabled(String s) { 
      Toast.makeText(class.this,"Provider disabled by the user. GPS turned off",Toast.LENGTH_SHORT).show(); 
      final AlertDialog alertDialog = new AlertDialog.Builder(class.this).create(); 
      alertDialog.setTitle("Activate GPS..."); 
      alertDialog.setButton("ok", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);     
       } 
      }); 
      alertDialog.show(); 
      }  
     public void onProviderEnabled(String s) { 
      Toast.makeText(class.this,"Provider enabled by the user. GPS turned on", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

は、ユーザーの知識がなくても、O/Pを取得するためのトーストメッセージを削除します。 – wolverine

5

LocationManager lm = (LocationManager)yourActivityContext.getSystemService(Context.LOCATION_SERVICE); 
Location lastKnown = lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); 

、これは、オペレーティング・システムによって受信された最後の既知の位置を返しますので、これは古いかもしれ場所が取得された日時、および場所オブジェクトを照会することによってどのプロバイダによって確認できます。

結論として、あなたの場所にはが割り当てられていることが分かりませんが、あなたのアプリには適切な場所の許可が必要です。

関連する問題