关于 react native 的 PermissionAwareActivity
的文档非常少我需要为 Android API 23+ 实现它的方法,以允许用户接受/拒绝蓝牙权限。
import android.support.v4.app.ActivityCompat;
import com.facebook.react.modules.core.PermissionAwareActivity;
import com.facebook.react.modules.core.PermissionListener;
public class MainActivity extends ExponentActivity implements PermissionAwareActivity {
private PermissionListener mPermissionListener;
@Override
public int checkPermission(String permission, int pid, int uid) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public int checkSelfPermission(String permission) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public void requestPermissions(String[] permissions, int requestCode, PermissionListener listener) {
mPermissionListener = listener;
ActivityCompat.requestPermissions(this, permissions, requestCode);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
// callback to native module
mPermissionListener.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
...
我不太确定应该如何实现这些方法。任何帮助表示赞赏。即使有人可以指出一些我找不到的文档或资源。
最佳答案
如果您没有使用不是从我的 ReactActivity 派生的 Activity 并且需要权限感知,请将以下内容添加到您的 Activity 中:
import com.facebook.react.modules.core.PermissionAwareActivity;
import com.facebook.react.modules.core.PermissionListener;
....
public class MyActivity extends Activity implements PermissionAwareActivity {
private PermissionListener permissionListener;
....
@TargetApi(Build.VERSION_CODES.M)
public void requestPermissions(String[] permissions, int requestCode, PermissionListener listener) {
permissionListener = listener;
requestPermissions(permissions, requestCode);
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (permissionListener != null && permissionListener.onRequestPermissionsResult(requestCode, permissions, grantResults)) {
permissionListener = null;
}
}
}
关于java - 你如何为 React Native 实现 PermissionAwareActivity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44960363/