当前位置: 首页 > 知识库问答 >
问题:

Android studio API 19:google places place未找到API异常15

单于帅
2023-03-14

我想开发一个显示附近餐馆的应用程序。下面是我的代码:

java:公共类MapsActivity扩展了FragmentActivity实现了OnMapReadyCallback{

private GoogleMap mMap;
private String API_KEY = BuildConfig.API_KEY;
PlacesClient placesClient;
private static final int RC_LOCATION = 10;
LatLng latLng;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // 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);

    // Initialize the SDK
    Places.initialize(getApplicationContext(), API_KEY);

    // Create a new PlacesClient instance
    placesClient = Places.createClient(this);

    getCurrentLocation();
}

/**
 * Manipulates the map once available.
 * This callback is triggered when the map is ready to be used.
 * This is where we can add markers or lines, add listeners or move the camera. In this case,
 * we just add a marker near Sydney, Australia.
 * If Google Play services is not installed on the device, the user will be prompted to install
 * it inside the SupportMapFragment. This method will only be triggered once the user has
 * installed Google Play services and returned to the app.
 */
@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;


}

private void getCurrentLocation() {
    List<Place.Field> placeFields = Arrays.asList(Place.Field.NAME, Place.Field.LAT_LNG,
            Place.Field.TYPES);

//调用findCurrentPlace并处理响应(首先检查用户是否已授予权限)。如果(contextcompat.checkselfpermission(this,ACCESS_FINE_LOCATION)==packagemanager.permission_grant){Task placeResponse=placesclient.findcurrentPlace(request);placeResponse.addoncompleteListener(Task->{if(Task.issuccessful()){FindCurrentPlaceResponse response=Task.getresult();

                boolean firstRestaurantFound = false;

                for (PlaceLikelihood placeLikelihood : response.getPlaceLikelihoods()) {
                    Log.i("success", String.format("Place '%s' has likelihood: %f",
                            placeLikelihood.getPlace().getName(),
                            placeLikelihood.getLikelihood()));

                    final Place.Type lookingFor = RESTAURANT; // Place.Type.RESTAURANT
                    // if latitude and longitude aren't null and if the place type is RESTAURANT
                    final List<Place.Type> types = placeLikelihood.getPlace().getTypes();
                    Log.d("TYPES", types.toString());
                    if (placeLikelihood.getPlace().getLatLng() != null && types.contains(lookingFor)) {

                        latLng = placeLikelihood.getPlace().getLatLng();

                        //Move camera to the first restaurant found
                        if(!firstRestaurantFound){
                            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));
                            firstRestaurantFound = true;
                        }

                        MarkerOptions options = new MarkerOptions()
                                .position(latLng)
                                .title(placeLikelihood.getPlace().getName());

                        mMap.addMarker(options);
                    }

                }
            } else {
                Exception exception = task.getException();
                if (exception instanceof ApiException) {
                    ApiException apiException = (ApiException) exception;
                    Log.e("error", "Place not found: " + apiException.getStatusCode());
                }
            }
        });
    } else {
        getLocatePermission();

    }
}


private void getLocatePermission() {
    ActivityCompat.requestPermissions(this, new String[]{ACCESS_FINE_LOCATION}, RC_LOCATION);
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                       @NonNull int[] grantResults) {
    if (requestCode == RC_LOCATION) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            getCurrentLocation();
        } else {
            getLocatePermission();
        }
    }
}

}

但是模拟器没有找到我,并告诉我Api异常15:连接超时。然而,它在我的三星s10eAndroid10上工作。

共有1个答案

翟理
2023-03-14

很管用。我手动将我的位置放在模拟器参数中。

 类似资料:
  • 问题内容: 我从这篇博客文章中获得了帮助: 但是我发现com.mysql.jdbc.driver类未找到异常。那篇博客文章的不同之处在于,在我的案例中,他们尝试连接到mysql而不是MS SQL。到目前为止,这是我的代码:package com.example.dbtry; 请告诉我我在做什么错。我还在清单中添加了对Internet的许可。 问题答案: 从以下位置下载jar:http://www.

  • 我在将Web应用程序部署到WebLogic服务器12c时遇到问题。Web应用程序依赖于服务jar(内部依赖于Hibernate类)。当我构建战争时,它不包括Web应用程序的WEB-INF/lib/文件夹中的hibernate-entitymanager.jar,并且它的部署失败,例外是“ClassNotFoundExceptionorg.hibernate.ejb.HibernatePeraxy”

  • 我的应用程序超过了64k个方法,所以我应该实现多索引,最初我遇到的问题是“本地路径不存在”,我解决了这个问题,现在gradle生成了类1。dex和classes2。dex,但在低于Lollipop的环境中不工作。。它在Lollipop中工作得很好,因为它有天然的支持。错误是这样说的“ 看过一些教程后,他们说必须改变1.gradle2.application3.manifest 我对申请课了解不多.

  • 我试图通过JWS为我的java项目分发签名jar,我所做的是 我已经把我的班级档案装进了一个罐子 使用keytool-keytool-genkey-keystore xxx-alias xxx创建密码 使用jarsigner-keystore xxx测试对jar进行签名。jar xxx-命令 但我的错误是没有发现类异常。太阳安全工具。贾西纳。 我使用的是JDK1.6.0.21。我试着打开工具。ja

  • 我已经为Classroom API实现了JavaQuickStart,并且在运行时收到了错误消息"java.io.FileNotFoundExc0019: Resources not找到:/credentials.json"。我复制了我的credentials.json文件到项目res目录,但继续得到这个错误。有什么建议吗?

  • 问题内容: 我在项目中使用了KSOP2,并且这些天一直都在工作。最近,我买了一台新机器,并将项目移到新机器上,并将ksoap库导入到项目等中,当我尝试运行该应用程序时,我在模拟器中遇到以下错误 这是引发异常的地方。 与64位计算机有关?? 这些年来一直有效的应用程序为何突然停止工作?有人可以启发我。我坚持下去。谢谢您的时间。 问题答案: 我设法通过解决问题 在项目中创建一个文件夹“ libs” 将