Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将PlaceFilter与PlaceDetectionApi一起使用_Android_Google Api_Google Places Api - Fatal编程技术网

Android 将PlaceFilter与PlaceDetectionApi一起使用

Android 将PlaceFilter与PlaceDetectionApi一起使用,android,google-api,google-places-api,Android,Google Api,Google Places Api,我尝试了以下代码 ArrayList<String> filters = new ArrayList<>(); filters.add(Place.TYPE_ATM + ""); filters.add(Place.TYPE_BANK + ""); filters.add(Place.TYPE_BAR + ""); filters.add(Place.TYPE_BUS_STATION + ""); filters.add(P

我尝试了以下代码

    ArrayList<String> filters = new ArrayList<>();
    filters.add(Place.TYPE_ATM + "");
    filters.add(Place.TYPE_BANK + "");
    filters.add(Place.TYPE_BAR + "");
    filters.add(Place.TYPE_BUS_STATION + "");
    filters.add(Place.TYPE_DOCTOR + "");
    filters.add(Place.TYPE_FOOD + "");
    filters.add(Place.TYPE_ACCOUNTING + "");
    filters.add(Place.TYPE_AIRPORT + "");
    filters.add(Place.TYPE_RESTAURANT + "");
    filters.add("restaurant");
    filters.add("establishment");
    filters.add(Place.TYPE_STORE + "");
    PlaceFilter placeFilter = new PlaceFilter(false, filters);
    PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
            .getCurrentPlace(mGoogleApiClient, placeFilter);
    result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
        @Override
        public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
            Log.v("App", "1. likelyPlaces.getCount() : " + likelyPlaces.getCount());
            for (PlaceLikelihood placeLikelihood : likelyPlaces) {
                for(int i : placeLikelihood.getPlace().getPlaceTypes()){
                    Log.i("App", String.format("Place '%s' with " +
                                    "likelihood: %g "+"type : %d",
                            placeLikelihood.getPlace().getName(),
                            placeLikelihood.getLikelihood(), i));
                }
            }
            likelyPlaces.release();
        }
    });
ArrayList过滤器=新的ArrayList();
filters.add(Place.TYPE_ATM+);
filters.add(Place.TYPE_BANK+“”);
filters.add(Place.TYPE_BAR+);
filters.add(Place.TYPE_BUS_STATION+);
filters.add(Place.TYPE_DOCTOR+);
过滤器。添加(Place.TYPE_FOOD+);
filters.add(Place.TYPE_ACCOUNTING+“”);
filters.add(Place.TYPE_AIRPORT+);
添加(Place.TYPE_RESTAURANT+“”);
过滤器。添加(“餐厅”);
过滤器。添加(“建立”);
filters.add(Place.TYPE_STORE+“”);
PlaceFilter PlaceFilter=新的PlaceFilter(false,filters);
Pendingreult结果=Places.PlaceDetectionApi
.getCurrentPlace(mgoogleapClient、placeFilter);
result.setResultCallback(新的ResultCallback(){
@凌驾
public void onResult(PlaceLikelihoodBuffer likelyPlaces){
Log.v(“App”,“1.likelyPlaces.getCount():”+likelyPlaces.getCount());
for(place可能性place可能性:likelyPlaces){
对于(int i:placelikelibility.getPlace().getPlaceTypes()){
Log.i(“应用”,String.format(“将“%s”放置在”+
“可能性:%g”+“类型:%d”,
place.getPlace().getName(),
placelikelization.getlikelization(),i));
}
}
likelyPlaces.release();
}
});
它将
likelyPlaces.getCount()返回为0

但是如果我更改
pendingreult result=Places.PlaceDetectionApi
.getCurrentPlace(mgoogleapClient、placeFilter)
pendingreult结果=Places.PlaceDetectionApi
.getCurrentPlace(mgoogleapClient,空)我可以通过PlaceType获得20个位置
341013、38、79、88、7

所以我的问题是,我是否以错误的方式启动了
PlaceFilter
,如果是的话 如何将
PlaceFilter
PlaceDetectionApi
一起使用

还有,我怎样才能得到所有地方的照片


任何帮助都是非常值得的

改用整数值。看看下面的链接


请尝试使用整数值。看看下面的链接


PlaceFilter构造函数接受位置ID而不是位置类型

PlaceFilter(布尔型,集合限制为PlaceId)


这意味着您不能使用PlaceDetectionApi按位置类型筛选位置。您只能将结果限制为传递给api调用的PlaceFilter中的给定位置ID。

PlaceFilter构造函数接受位置ID而不是位置类型

PlaceFilter(布尔型,集合限制为PlaceId)


这意味着您不能使用PlaceDetectionApi按位置类型筛选位置。您只能将结果限制为传递给api调用的PlaceFilter中的给定位置ID。

place.TYPE\u ATM
这只是整数值,其值为
6
。请查看同一链接以了解更多详细信息。请尝试filters.add(String.valueOf(Place.TYPE_ATM))。PlaceFilter使用Parcelable,这可能会被误解。不是说它会工作,但值得一试。
Place.TYPE\u ATM
这只是整数值,它的值是
6
。请查看同一链接以了解更多详细信息。请尝试filters.add(String.valueOf(Place.TYPE_ATM))。PlaceFilter使用Parcelable,这可能会被误解。不说它会起作用,但值得一试。