【问题标题】:Get Contact React Native联系 React Native
【发布时间】:2021-11-26 11:01:19
【问题描述】:

我想制作一个可以在手机联系人列表中导航的屏幕页面。所以我制作了一个用于获取联系的本机模块,它可以工作,但适用于 android 10 及更低版本。对于android 11,他无法运行。我创建的功能无法获取联系人数据。我已确保所有权限都在那里。下面是我做的代码

const getChooseContact = () => {
    const { ContactsWrapper } = NativeModules;

    ContactsWrapper.getContact()
      .then((contact) => {
        setPhoneNumber(contact.phoneNumber);
      })
      .catch((error) => {
        console.log(error);
      });
  };

const requestMediaPermission = async () => {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
      );

      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        getChooseContact();
      } else {
        setErrorMessage('Access media permission denied');
      }
    } catch (err) {
      console.log(err);
    }
  };

【问题讨论】:

  • 你能补充一下发生了什么吗?您看到错误了吗?
  • 没有错误,ContactsWrapper.getContact() 函数在 android 11 @p-syche 中不起作用

标签: javascript reactjs react-native contacts native-module


【解决方案1】:

这主要是因为在 API 30 及更高版本中,我们不能再与外部模块进行交互,而无需特别允许交互。 这可以通过两种方式发生,一种是在 androidmanifest.xml 中使用<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />,尽管不鼓励这样做,因为它可能会拒绝您的应用程序请阅读此内容https://support.google.com/googleplay/android-developer/answer/10158779#zippy=%2Cpermitted-uses-of-the-query-all-packages-permission

解决您的问题

  1. 在 android 下的 build.gradle 中将类路径更新为: classpath 'com.android.tools.build:gradle:3.5.4' 这允许在捆绑过程中识别下一步,否则您将收到错误
  2. 在androidmanifest.xml中应用标签前添加这个
 <queries>
        <!-- Browser -->
        
        <intent android:label="View Contact">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/person" android:host="contacts" />
         
        </intent>


    </queries>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 2019-06-07
    • 2017-01-13
    相关资源
    最近更新 更多