Java Google places getPlaceID返回非空数组,而筛选器返回零结果

Java Google places getPlaceID返回非空数组,而筛选器返回零结果,java,android,geolocation,google-places-api,google-places,Java,Android,Geolocation,Google Places Api,Google Places,我已经成功地在我的应用程序中实现了GooglePlaces。我现在尝试过滤结果,这是我的结果数组 PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, null); 然而,我得到了错误 错误:(98118)错误:不兼容的类型:int无法转换为PlaceFilter 我看过一些Stackoverflow的帖子,但它们都很老了,所以我

我已经成功地在我的应用程序中实现了GooglePlaces。我现在尝试过滤结果,这是我的结果数组

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, null);
然而,我得到了错误

错误:(98118)错误:不兼容的类型:int无法转换为PlaceFilter

我看过一些Stackoverflow的帖子,但它们都很老了,所以我不知道它们是否仍然有效。他们都说,谷歌的places还没有完全实现过滤器。还是这样吗?如果没有,有人能帮忙吗

谢谢

更新1:

因此,我找到了每种类型的placeID: 为了测试,我这样做了(基本上它应该再次打印我文本框中的所有位置,就像它是空的一样):

ArrayList过滤器=新建ArrayList();
对于(int i=0;i<5000;i++){
filter.add(String.valueOf(i));
}
PlaceFilter filterClosed=新的PlaceFilter(false,filter);
然后应用它:

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, filterClosed);
pendingreult result=Places.PlaceDetectionApi.getCurrentPlace(GoogleAppClient,filterClosed);
然而,我在文本框中再也找不到位置了,我会收到任何位置信息。知道为什么吗

更新2 使用您在评论中提供的信息,我使用getID方法获得了placeID,请参考我在评论中上传的屏幕截图(stackoverflow不允许我再上传链接)。所以它给我ID,为什么当我对结果应用过滤器时它什么也不返回?其他人能试试吗?这是我的密码:

PlaceFilter filterClosed = null;
    ArrayList<String> filter = new ArrayList<>();
    for (int i =0; i < 45; i++){
        filter.add(String.valueOf(i));
    }
    filterClosed = new PlaceFilter(false, filter);
    txtLocation.setText(String.valueOf(filterClosed.getPlaceIds()));



    PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, filterClosed);
PlaceFilter过滤器关闭=null;
ArrayList过滤器=新的ArrayList();
对于(int i=0;i<45;i++){
filter.add(String.valueOf(i));
}
filterClosed=新位置过滤器(false,过滤器);
setText(String.valueOf(filterClosed.getPlaceIds());
PendingResult结果=Places.PlaceDetectionApi.getCurrentPlace(GoogleAppClient,filterClosed);

我不明白如何使用places matches bool val

第二个参数需要是
PlaceFilter
对象,而不是
int

List<String> filters = new ArrayList<>();
filters.add(Place.TYPE_LIBRARY); 
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, PlaceFilter(true, filters));
List filters=new ArrayList();
filters.add(Place.TYPE_库);
Pendingreult结果=Places.PlaceDetectionApi.getCurrentPlace(GoogleAppClient,PlaceFilter(true,filters));
PlaceFilter
构造函数的第一个参数决定是否只过滤现在打开的位置


有关该类的完整参考,请参见

我到底应该如何编写这段代码?因为你在上面的建议中创建了一个数组,添加了一些类型(我理解),但这里的placeId是什么?过滤器从来没有使用过,我错了,它应该是过滤器。我更新了答案。我现在更明白这一点了。请参阅我更新的OP postTry
PlaceFilter
类中的其他方法。查看
getPlaceIds()
它说“返回此筛选器允许的位置ID集,或者如果不按位置ID进行筛选,则返回一个空集。”它还看起来像是在使用
null
筛选器获得结果后,使用
matches(place-place)
对结果进行筛选。
PlaceFilter filterClosed = null;
    ArrayList<String> filter = new ArrayList<>();
    for (int i =0; i < 45; i++){
        filter.add(String.valueOf(i));
    }
    filterClosed = new PlaceFilter(false, filter);
    txtLocation.setText(String.valueOf(filterClosed.getPlaceIds()));



    PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, filterClosed);
List<String> filters = new ArrayList<>();
filters.add(Place.TYPE_LIBRARY); 
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, PlaceFilter(true, filters));