java - 你如何为 React Native 实现 PermissionAwareActivity?

标签 java android react-native

关于 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;
        }
    }
}

我从 here 得到代码.建议here .

关于java - 你如何为 React Native 实现 PermissionAwareActivity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44960363/

相关文章:

java - 将 JComboBox 放入 JTable

c# - 使用 RSA/ECB/PKCS1Padding 的 .Net 加密和 java 解密

java - 将一个对象拆分为多个表

Java 两个 float 相除得到 0

java - 如何从Web服务请求获取日历对象?

发布时忽略 Android 依赖项

android - 如何使用 https url 并使用 header 加载图像(授权)

javascript - React Native Navigation 组件路由问题

android - 找不到错误 Android 项目。你确定这是一个 React Native 项目吗?

android - React Native 样式问题。不变的违反