android - Redmi 手机不询问短信权限,因此不阅读短信

标签 android permissions sms android-permissions redmi-permission

以下是我的代码:

<!-- Data SMS Receiver -->
    <receiver android:name=".otp.OTPReceiver" android:enabled="true" android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.DATA_SMS_RECEIVED" />


            <data android:scheme="sms" />
            <data android:port="9027" />
        </intent-filter>
    </receiver>

otp.OTPReceiver 是关联的 BroadcastReceiver 这适用于除 Redmi 设备以外的所有其他手机。在 Redmi 手机中,您必须在 Permissions 应用 中手动打开自动启动和其他权限(此应用处理 Redmi 手机中的权限)。我在安装时询问权限时看到 Facebook、whatsapp 等。想知道如何做到这一点。

我看到类似 this 的问题& this他们在问同样的事情,但都没有得到回答。我尝试将 android:enabled="true"android:exported="true" 添加到接收器 xml fragment 中,如 here 中所述.但这些都不起作用。

编辑:我正在使用data sms(也称为port sms)。我也用普通短信验证过,红米手机也有这个问题

最佳答案

经过长时间的尝试,获得了 MI SMS 许可(通过 SMS 提供商)。 将此方法(内容提供程序方法)添加到您的 Activity 或 fragment 中。 您将能够获得许可。

private void displaySmsLog() {
    Uri allMessages = Uri.parse("content://sms/");
    //Cursor cursor = managedQuery(allMessages, null, null, null, null);  Both are same
    Cursor cursor = this.getContentResolver().query(allMessages, null,
            null, null, null);

    while (cursor.moveToNext()) {
        for (int i = 0; i < cursor.getColumnCount(); i++) {
            Log.d(cursor.getColumnName(i) + "", cursor.getString(i) + "");
        }
        Log.d("One row finished",
                "**************************************************");
    }

}

试一试,它对我有用。

关于android - Redmi 手机不询问短信权限,因此不阅读短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36357951/

相关文章:

android - MediaCodec 和 OMXCodec 的区别

android - ImageView:填充水平保持纵横比

facebook - 桌面网页游戏策略更改允许哪些参数?

ios - Twilio SMS 聊天机器人使用 imessage 和 imessage 效果?

c# - 使用 AT 命令发送多部分短信失败

android - Google Chrome for Android 远程网络调试

java - 如何检查我选择了一周中的哪一天以及是否是周末

Cordova 应用程序 'Android permission Cordova plugin' 未显示权限对话框

django - Django 中的动态用户菜单

android - 加载 SMS 对话以及联系人姓名