私はアンドロイドアプリケーションを開発しています。ユーザーがアプリケーションにログインしたらすぐに、ユーザーの場所を見つける必要があります。地図を表示したくありません。ユーザーの知らないうちに場所を特定する必要があります。Google Maps API を使用してこれを行うことは可能ですか? またはこれを行う他の方法はありますか?
ありがとう
私はアンドロイドアプリケーションを開発しています。ユーザーがアプリケーションにログインしたらすぐに、ユーザーの場所を見つける必要があります。地図を表示したくありません。ユーザーの知らないうちに場所を特定する必要があります。Google Maps API を使用してこれを行うことは可能ですか? またはこれを行う他の方法はありますか?
ありがとう
これを行う最善の方法は、次のPASSIVE
ようにロケーション プロバイダーを使用することです。
LocationManager lm = (LocationManager)yourActivityContext.getSystemService(Context.LOCATION_SERVICE);
Location lastKnown = lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
これは、オペレーティング システムによって受信された最後の既知の場所を返すため、これは古い可能性がありますが、場所オブジェクトをクエリすることで、場所がいつ取得されたか、どのプロバイダーによって取得されたかを確認できます。
結論として、アプリが適切な位置情報の許可を必要とすることを除けば、ユーザーは位置情報を取得したことを知りません。
これを試して、
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();
}
}