相关疑难解决方法(0)

LocationSettingsRequest对话框启用GPS - 跳过onActivityResult()

我的应用程序的一部分需要位置服务,因此如果当前关闭位置,应用程序将提示用户启用它.下面是我正在做它:(也见于这个堆栈溢出的答案)

LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
            .addLocationRequest(mLocationRequest);
builder.setAlwaysShow(true);

PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());

result.setResultCallback(new ResultCallback<LocationSettingsResult>() 
{
     @Override
     public void onResult(LocationSettingsResult result) 
     {
         final Status status = result.getStatus();
         final LocationSettingsStates = result.getLocationSettingsStates();
         switch (status.getStatusCode()) 
         {
             case LocationSettingsStatusCodes.SUCCESS:
                 // All location settings are satisfied. The client can initialize location
                 // requests here.
                 ...
                 Log.d("onResult", "SUCCESS");
                 break;
             case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                 // Location settings are not satisfied. But could be fixed by showing the user
                 // a dialog.
                 Log.d("onResult", "RESOLUTION_REQUIRED");
                 try …
Run Code Online (Sandbox Code Playgroud)

android dialog

51
推荐指数
4
解决办法
4万
查看次数

如何使用FusedLocationProviderClient获取GoogleMap中的当前位置

我想定期(比如每2分钟)当前位置更新为这个我下面的官方文档,我写了这个代码,但它不会给当前的位置即使在我传递requestLocationUpdates LocationRequest对象指定每两分钟更新( ),这里是代码:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,
    GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{

private FusedLocationProviderClient FusedLocationClient;
private GoogleApiClient mGoogleApiClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    if (mGoogleApiClient == null) {
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();
    }

 SupportMapFragment map = 
  getSupportFragmentManager().findFragmentById(R.id.map));

  map.getMapAsync(this);

  FusedLocationClient LocationServices.getFusedLocationProviderClient(this);
}


@Override
public void onConnected(Bundle bundle) {
    FusedLocationClient.getLastLocation()
            .addOnSuccessListener(this, new OnSuccessListener<Location>() {
                @Override
                public void onSuccess(Location location) {

                    if (location != null) {
                        Log.i("MainActivity ", "" + location.getLongitude()) 
                    }
                }
            });
FusedLocationClient = …
Run Code Online (Sandbox Code Playgroud)

java android google-maps-android-api-2 android-fusedlocation

25
推荐指数
2
解决办法
4万
查看次数

如何使用Google API客户端在Google Map Android中显示我当前的位置

我想在地图上显示我的位置并放大它.我想使用GoolgeAPIClient.地图渲染和指针创建但位置错误.我觉得即使在调用GoogleAPIClient的onConnected方法之前,也会先执行onMapReady.请帮助这是我的代码.

import android.location.Location;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import com.google.android.gms.maps.model.MarkerOptions;


public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
    protected static final String TAG = "MainActivity";

    /**
     * Provides the entry point to Google Play services.
     */
    protected GoogleApiClient mGoogleApiClient;

    /**
     * Represents a geographical location.
     */
    protected Location mLastLocation;

    protected String mLatitudeLabel;
    protected …
Run Code Online (Sandbox Code Playgroud)

android google-maps-android-api-2

18
推荐指数
1
解决办法
7万
查看次数

Android无法解析方法requestLocationUpdates FusedLocationProviderAPI

我正在尝试按照Android 接收位置更新教程.示例代码在Github上.

一切都在工作,除了这一行: LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);

这是一个cannot resolve method requestLocationUpdates错误.我在文档中没有看到任何内容,但我对Android很新,所以可能会遗漏一些东西:).

这是完整的代码.我出错的任何想法?谢谢!

package location.test.example.com;

import android.app.Fragment;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.ActionMode;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;

import java.util.ArrayList;
import java.util.Date;

public class LocationFragment extends Fragment implements
        GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {

    protected GoogleApiClient …
Run Code Online (Sandbox Code Playgroud)

android fusedlocationproviderapi

15
推荐指数
2
解决办法
4万
查看次数

使用android融合位置api在MyLocation上不显示蓝点和圆圈

我使用LocationManager跟踪用户当前位置.现在,在将位置管理器更改为FusedLocation API之后,即使在设置之后也不会显示蓝点和圆圈map.setMyLocationEnabled(true).我可以在地图片段的右上角看到当前位置图标,但点击它不会做任何事情.我将我的代码恢复到LocationManager现在我能够看到指向我当前位置的蓝点.使用Fused Location API可能有什么问题.

android google-maps-android-api-2 android-fusedlocation

11
推荐指数
2
解决办法
3万
查看次数

使用RequestFuture.get()时Android排名超时异常

在我的片段中,我正在尝试使用TMDB的开放电影数据库来获取有关"正在播放"电影的详细信息.

如果我使用RequestFuture.get(time,TimeUnit)方法来执行此排球请求,我总是会收到超时错误.如果我在Safari中手动测试相同的Url,我会立即得到结果.

我知道的:

1.)它不是任何JSON解析错误.(程序甚至没有进入解析步骤)

2.)AVD没有互联网问题.(后面解释的原因).

3.)我的凌空单件类或我的请求队列不是问题.(后来解释的原因).

所以我认为我在排球/请求未来的使用方面犯了另一个错误.

片段代码如下:

public class BoxOffice extends android.support.v4.app.Fragment {
    private VolleySingleton volleySingleton;
    private RequestQueue requestQueue;
    private ImageLoader imageLoader;
    private ArrayList<MyMovie> movieList;
    private MyUriBuilder mBuilder;

    public BoxOffice() {
        // Required empty public constructor
        volleySingleton = VolleySingleton.getInstance();
        requestQueue = volleySingleton.getRequestQueue();
        mBuilder = new MyUriBuilder();
        movieList = new ArrayList<>();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
        StepA();
    }

    public void StepA() {
        String url = …
Run Code Online (Sandbox Code Playgroud)

java android network-programming future android-volley

11
推荐指数
1
解决办法
7634
查看次数

map.setmylocationenabled(true)无法正常工作

我在我的Android应用中使用谷歌地图.我需要将地图重新​​定位到客户端的当前位置.我使用了以下声明 -

map.setmylocationenabled(true);
Run Code Online (Sandbox Code Playgroud)

这会在右上方显示一个按钮,但单击该按钮不起作用.

按钮单击侦听器:

mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
                @Override
                public boolean onMyLocationButtonClick() {
                    mMap.addMarker(new MarkerOptions().position(myLatLng).title("My Location"));
                    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(myLatLng, zoomLevel));
                    return false;
                }
            });
Run Code Online (Sandbox Code Playgroud)

android location google-maps google-maps-markers

9
推荐指数
2
解决办法
3万
查看次数

使用谷歌位置API获取Android中onMapReady的当前位置

我正试图在我的应用程序内的谷歌地图上显示用户的当前位置,但我不想在用户移动时不断更新位置.他的初始位置应该被记录并显示,直到他关闭应用程序.我为此编写了以下代码:

private GoogleMap mMap;
protected GoogleApiClient mGoogleApiClient;
Location mLastLocation;
double lat =0, lng=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
    buildGoogleApiClient();

    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);


}

private void buildGoogleApiClient() {
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .build();
}


/**
 * Manipulates the map once available.
 * This callback is triggered when the map is ready to be used.
 * This …
Run Code Online (Sandbox Code Playgroud)

android google-maps-android-api-2

7
推荐指数
1
解决办法
2万
查看次数

在Google地图片段中显示当前位置

我目前正在制作一个带有谷歌地图的片段.一旦用户访问该片段,他的地图应该缩放并关注他的位置.但是,它显示的是世界地图而不是附近的位置(靠近用户):

@SuppressWarnings("unused")
public class DeferredMapFragment extends MapFragment implements GoogleMap.OnCameraChangeListener, OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener,
            LocationListener {
        private static final String TAG = "DeferredMapFragment";

    private Deque<Runnable> pendingActions;
    private AbstractMap<Marker, Object> tags;

    private GoogleMap map;
    private LocationRequest mLocationRequest;
    private GoogleApiClient mGoogleApiClient;
    private Location mLastLocation;
    private Marker marker;

    private GoogleMap.OnCameraChangeListener cameraChangeListener = null;

    private boolean isMapReady = false;

    /*
     * INTERNALS
     */

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        if (getMap() != null) {
            map = getMap();
            getMap().setOnCameraChangeListener(this);
        }
    }

    @Override
    public void onCameraChange(CameraPosition cameraPosition) …
Run Code Online (Sandbox Code Playgroud)

maps android google-maps

5
推荐指数
1
解决办法
1万
查看次数

如何在谷歌地图api v2上获取设备的当前位置?

我找到了一些方法来做到这一点,但已被弃用或无效.我想从设备获得当前的经度和经度.

以下是我获取当前位置的getMyLocation()方法,但不推荐使用 GoogleMap 方法:

void getCurrentLocation()
{
    Location myLocation  = map.getMyLocation();
    if(myLocation!=null)
    {
        double dLatitude = myLocation.getLatitude();
        double dLongitude = myLocation.getLongitude();
        map.addMarker(new MarkerOptions().position(new LatLng(dLatitude, dLongitude))
                .title("My Location").icon(BitmapDescriptorFactory
                        .defaultMarker(BitmapDescriptorFactory.HUE_RED)));
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(dLatitude, dLongitude), 8));

    }
    else
    {
        Toast.makeText(this, "Unable to fetch the current location", Toast.LENGTH_SHORT).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

android google-maps

1
推荐指数
1
解决办法
2万
查看次数