Google Play 商店上的 React Native 应用程序中短信权限存在困难

问题描述 投票:0回答:2

我在将 React Native 应用程序部署到 Google Play 商店进行生产发布时遇到了问题。该应用程序利用react-native-otp-verify 库自动读取OTP 消息。虽然该功能在本地开发中运行良好,但在部署到 Play 商店时我面临短信权限的挑战。

以下是相关代码片段:

import {
  getHash,
  startOtpListener,
  removeListener,
} from 'react-native-otp-verify';

// // using methods
useEffect(() => {
  getHash()
    .then(hash => {
      // use this hash in the message.
      console.log('hash', hash);
    })
    .catch(console.log);

  startOtpListener(message => {
    console.log('message', message);
    // extract the otp using regex e.g. the below regex extracts 4 digit otp from message
    const otpMessage = /(\d{6})/g.exec(message)[1];
    console.log('otpMessage', otpMessage);
    setAuto(true);
    setOTP(otpMessage);
  });
  return () => removeListener();
}, []);

我已经确保 Play 商店和手机上收到的消息之间的哈希 ID 匹配。然而,尽管在短信和通话记录权限中选择了“默认短信处理程序”,我的应用程序还是被拒绝了。

在我的 AndroidManifest 文件中,我设置了必要的权限:

<!-- <uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" /> -->

我不确定在 Play 管理中心上为短信和通话记录权限选择的正确选项。有人可以指导我做出适当的选择来解决这个问题吗?

我们将非常感谢您的帮助。谢谢!

android react-native google-play-services google-play-console google-play-developer-api
2个回答
0
投票

您的应用程序不是默认的短信处理程序。默认短信处理程序是为所有传入文本写入短信数据库的应用程序。基本上,它是您手机的短信应用程序所需的特殊权限。您不需要仅仅为了阅读一条消息而需要它。事实上,声称您的应用程序要么是恶意软件,要么开发人员不知道他们在做什么(在本例中是第二个),这是一个巨大的危险信号。


0
投票

我也遇到这个问题了。不是发送短信抛出您的应用程序,而是意图发送带有接收者及其内容的默认短信应用程序。

带有空白文本的示例代码,供所选收件人使用。

从“react-native”导入{链接,平台}

const url = (Platform.OS === 'android')
  ? 'sms:1-408-555-1212?body=yourMessage'
  : 'sms:1-408-555-1212'

Linking.canOpenURL(url).then(supported => {
  if (!supported) {
    console.log('Unsupported url: ' + url)
  } else {
    return Linking.openURL(url)
  }
}).catch(err => console.error('An error occurred', err))
© www.soinside.com 2019 - 2024. All rights reserved.