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

时间:2017-10-24 12:38:32

标签: android android-permissions smsmanager

我搜索了一周的时间来找到在没有用户允许/拒绝权限请求的情况下发送短信的方法在6以上的Android版本中。大多数教程说创建一个对话框并解释为什么你需要权限,其中一些人说make explode 。我在react native中创建了一个应用程序,它使用这个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

1 个答案:

答案 0 :(得分:2)

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

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

这是apk的Manifest条目。 它的目标是Api 21 Max。 如果在具有询问权限的访问中,将在21以上的目标版本上抛出安全例外。  您可以手动禁用短信权限设置&gt;应用&gt; AppName&gt;权限。 并检查应用程序是否仍然能够访问Sms Api。

因此,无论您是针对任何Api级别,都需要关注Permission model。因为用户可以从Android M手动禁用权限。