4

我正在开发一个安卓应用程序。我需要在他/她登录到应用程序后立即找到用户的位置。我不想显示地图,应该在用户不知情的情况下识别位置。是否可以使用 Google 地图 API 执行此操作?还是有其他方法可以做到这一点?

谢谢

4

2 回答 2

5

最好的方法是PASSIVE像这样使用位置提供程序:

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

这将返回操作系统接收到的最后一个已知位置,因此这可能是陈旧的,但您可以通过查询位置对象来检查该位置何时被检索,以及由哪个提供者检索。

总之,用户不会知道您已经获得了位置,除非您的应用程序需要正确的位置权限。

于 2012-04-19T06:53:50.620 回答
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();
        }
    }
于 2012-04-19T06:54:35.877 回答