react-native 0.59 如何在 android 上创建本机请求权限
react-native 0.59 how to create a native request permission on android
我是 react-native 的新手,我使用的是 0.59。
我需要为后台地理定位显示“始终允许”的位置请求权限。
它正在 API 28 上工作。但是,当迁移到 API 29 时,它不会出现。
根据android文档,您需要手动列出权限。
目前。我有以下内容。
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
关于我的定制服务
/service/Geolocation.java
@ReactMethod
public void requestForLocationPermission(Promise promise) {
String result = "";
int permissionCheck = ContextCompat.checkSelfPermission(this.getReactApplicationContext(),
Manifest.permission.ACCESS_BACKGROUND_LOCATION);
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
promise.resolve("granted");
} else {
ActivityCompat.requestPermissions(
this,
new String[]{
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION
},
MY_PERMISSIONS_REQUEST_LOCATION
);
}
}
我有这个错误
如何在我的模块上扩展 MainActivity。
或者有什么可能的方法来获得许可。
谢谢
您可以将当前 activity 转换为 AppCompatActivity 以消除错误。因此,将 this
替换为 (AppCompatActivity) getCurrentActivity()
.
这对我有用
import android.app.Activity;
...
final Activity activity = getCurrentActivity();
ActivityCompat.requestPermissions(
activity,
new String[]{
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
},
MY_PERMISSIONS_REQUEST_LOCATION
);
我是 react-native 的新手,我使用的是 0.59。 我需要为后台地理定位显示“始终允许”的位置请求权限。
它正在 API 28 上工作。但是,当迁移到 API 29 时,它不会出现。
根据android文档,您需要手动列出权限。
目前。我有以下内容。
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
关于我的定制服务 /service/Geolocation.java
@ReactMethod
public void requestForLocationPermission(Promise promise) {
String result = "";
int permissionCheck = ContextCompat.checkSelfPermission(this.getReactApplicationContext(),
Manifest.permission.ACCESS_BACKGROUND_LOCATION);
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
promise.resolve("granted");
} else {
ActivityCompat.requestPermissions(
this,
new String[]{
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION
},
MY_PERMISSIONS_REQUEST_LOCATION
);
}
}
我有这个错误
如何在我的模块上扩展 MainActivity。 或者有什么可能的方法来获得许可。
谢谢
您可以将当前 activity 转换为 AppCompatActivity 以消除错误。因此,将 this
替换为 (AppCompatActivity) getCurrentActivity()
.
这对我有用
import android.app.Activity;
...
final Activity activity = getCurrentActivity();
ActivityCompat.requestPermissions(
activity,
new String[]{
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
},
MY_PERMISSIONS_REQUEST_LOCATION
);