Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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 新安卓将SDK放入安卓工作管理器_Android_Google Places Api_Google Places_Android Workmanager - Fatal编程技术网

Android 新安卓将SDK放入安卓工作管理器

Android 新安卓将SDK放入安卓工作管理器,android,google-places-api,google-places,android-workmanager,Android,Google Places Api,Google Places,Android Workmanager,作为前言,我在react native中工作,我们的应用程序使用了大量后台进程。我们已经尝试了许多基于react本机的解决方案,如后台提取、后台地理定位等。我们在测试中发现,在后台线程中收集数据的最佳方法是Android的本机工作管理器。我已经在Work manager中实现了一些基本功能,比如时间戳和应用程序使用。但现在我正努力让新的Android Places SDK(Google Places现在已被弃用)在work Manager中工作。下面是我得到的错误图片 所以,在遇到任何错误后,

作为前言,我在react native中工作,我们的应用程序使用了大量后台进程。我们已经尝试了许多基于react本机的解决方案,如后台提取、后台地理定位等。我们在测试中发现,在后台线程中收集数据的最佳方法是Android的本机工作管理器。我已经在Work manager中实现了一些基本功能,比如时间戳和应用程序使用。但现在我正努力让新的Android Places SDK(Google Places现在已被弃用)在work Manager中工作。下面是我得到的错误图片

所以,在遇到任何错误后,我自然而然地来到这里,你们中的许多人建议执行异步任务,并创建一个处理程序。由于对Android线程处理基本不熟悉,我不确定如何或在何处实现这些东西。到目前为止,我已经尝试在onCreate()和我的Worker中调用Looper.prepare()

这是我的密码

package com.bettertime.betterLocation;
导入android.Manifest;
导入android.content.Context;
导入android.content.pm.PackageManager;
导入android.os.Bundle;
导入android.support.annotation.requirePermission;
导入android.util.Log;
导入com.google.android.gms.common.api.api;
导入com.google.android.gms.common.api.ApiException;
导入com.google.android.gms.tasks.Task;
导入com.google.android.libraries.places.api.places;
导入com.google.android.libraries.places.api.model.Place;
导入com.google.android.libraries.places.api.model.place;
导入com.google.android.libraries.places.api.net.FindCurrentPlaceRequest;
导入com.google.android.libraries.places.api.net.FindCurrentPlaceResponse;
导入com.google.android.libraries.places.api.net.PlacesClient;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入android.support.v7.app.AppActivity;
导入android.support.v4.app.ActivityCompat;
导入android.support.v4.content.ContextCompat;
导入静态android.Manifest.permission.ACCESS\u FINE\u位置;
导入静态android.Manifest.permission.ACCESS\u WIFI\u状态;
导入静态com.bettertime.MainActivity.placesClient;
公共类BetterLocation扩展了AppCompative活动{
private List placeList=new ArrayList();
私有静态字符串TAG=“Location:”;
public static Map places=new HashMap();
int PERMISSION_ALL=1;
字符串[]权限={
Manifest.permission.ACCESS\u FINE\u位置,
Manifest.permission.ACCESS\u WIFI\u状态
};
公共作废findCurrentPlace(){
位置。清除();
if(ContextCompat.checkSelfPermission)(此,访问\u FINE\u位置)==PackageManager.PERMISSION\u已授予&&
ContextCompat.checkSelfPermission(此,访问\u WIFI\u状态)=PackageManager.PERMISSION\u已授予){
findCurrentPlaceWithPermissions();
}
}
@requirepermission(allOf={ACCESS\u FINE\u LOCATION,ACCESS\u WIFI\u STATE})
private void findCurrentPlaceWithPermissions(){
placeList.add(Place.Field.NAME);
placeList.add(Place.Field.ADDRESS);
placeList.add(Place.Field.LAT_LNG);
placeList.add(Place.Field.TYPES);
FindCurrentPlaceRequest当前位置请求=
FindCurrentPlaceRequest.builder(placeList.build();
if(ContextCompat.checkSelfPermission)(此,访问\u FINE\u位置)==PackageManager.PERMISSION\u已授予&&
ContextCompat.checkSelfPermission(此,访问\u WIFI\u状态)=PackageManager.PERMISSION\u已授予){
任务currentPlaceTask=placesClient.findCurrentPlace(currentPlaceRequest);
currentPlaceTask.addOnCompleteListener(任务->{
if(task.issusccessful()){
FindCurrentPlaceResponse=task.getResult();
断言响应!=null;
for(placelikelike:response.getplacelikelikelihoods()){
Log.d(标记“findCurrentPlace:”
+place.getPlace().getName()+“\n”
+place.getPlace().getAddress()+“\n”
+place.getPlace().getLatLng()+“\n”
+place.getPlace().getTypes()+“\n”
+placelikelization.getlikelization());
PlaceObj PlaceObj=新的PlaceObj(
place.getPlace().getName(),
place.getPlace().getAddress(),
place.getPlace().getLatLng(),
place.getPlace().getTypes(),
placelikelization.getlikelization());
地点。放置(“地点”,placeObj);
}
}否则{
Exception=task.getException();
if(ApiException的异常实例){
ApiException=(ApiException)异常;
Log.e(标记“findCurrentPlaceWithPermissions:+apiException.getStatusCode());
}
}
});
}
}
//////////////////////////
//助手方法如下//
//////////////////////////
私有布尔检查权限(字符串权限){
布尔hasPermission=
ContextCompat.checkSelfPermission(this,permission)=PackageManager.permission\u已授予;
如果(!hasPermission){
ActivityCompat.requestPermissions(这个,新字符串[]{permission},0);
}
未经许可返回;
}
公共静态权限(上下文、字符串…权限){
if(context!=null&&permission