在 Android API 版本 > 6.0 (API 23) 中未经用户许可发送短信

Send sms without user permission in Android API version > 6.0 (API 23)

我搜索了一个星期,在 6 以上的 android 版本中找到了一种无需用户 allow/deny 权限请求即可发送短信的方法。大多数教程都说创建一个对话框并解释为什么你需要许可,其中一些人说会爆炸。我在本机反应中创建了一个应用程序,它使用这个 npm 库 react-native-get-sms-android 在未经任何许可的情况下发送短信。在 android 版本 6 和 7 中,它运行良好。我使用了这个代码

SmsAndroid.autoSend(phoneNumber, message, (fail) -> {
    console.log("Failed with this error: " + fail)
}, (success) -> {
    console.log("SMS sent successfully");
});

然后我得到一个 android 应用程序,它在 android 版本 6 和 7 中无需任何许可请求就可以发送短信。这让我很困惑,怎么办? 这是我得到的应用程序:

https://drive.google.com/file/d/0BxPC6lSGOPLHcmxjR2ZNd1dGQUk/view?usp=sharing

除非您的目标版本<=21(系统应用除外),否则无法执行此操作。

 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="21" />

这是该 apk 的清单条目。 它的目标 Api 21 最大。 在 Target 版本高于 21 的情况下,如果在请求许可的情况下访问,将抛出安全异常。 您可以手动禁用短信权限设置>应用程序>应用程序名称>权限。 并检查该应用程序是否仍然可以发送能够访问短信 Api 或不。

因此,无论您的目标是 Api 级别,都需要遵循 Permission model。因为用户可以手动禁用从 Android M.

开始的权限