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

Posted

技术标签:

【中文标题】Redmi手机不询问短信权限,因此不阅读短信【英文标题】:Redmi phones not asking SMS permissions and hence not reading sms 【发布时间】:2016-07-21 08:32:38 【问题描述】:

以下是我的代码:

<!-- 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 sn-p 中,就像here 中提到的那样。但这些都不起作用。

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

【问题讨论】:

你的 targetSdk 是什么? targetSdkVersion 24 我想你已经检查了运行时权限(如果有的话)!! 我知道它的答案不是试图传达这是 MI 设备的问题,我遇到了同样的问题,但仍然没有想到我认为这是因为他们的自定义 MIUI 操作系统。 嘿,如果你找到任何东西,请给我打电话,这将是很大的帮助 【参考方案1】:

经过长时间的尝试,获得了 MI SMS 权限(通过 SMS Provider)。 将此方法(内容提供者方法)添加到您的活动或片段中。 您将能够获得许可。

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",
                "**************************************************");
    


试一试,它对我有用。

【讨论】:

谢谢,尽快试试!! 嘿,请提供反馈兄弟.....它在MI 4i上工作......所以我会测试并为其他MI手机采取一些预防措施 @PraveenSingh 您能否提供有关您的测试设备的信息。 @TarunSharma 我在小米红米 Note 3 上测试过 这仅适用于正常的短信阅读。 . .OTP 密码通常从 SMS 网关发送,并被 MIUI 检测为服务消息,并且需要手动授予读取 SMS 的权限。

以上是关于Redmi手机不询问短信权限,因此不阅读短信的主要内容,如果未能解决你的问题,请参考以下文章

如何在MIUI 8+中获取读取“服务SMS”的权限(以编程方式)

如何在Android中未经许可阅读接收短信

安卓 6.0 权限。阅读短信

群发短信有什么要求呢?这些不看一定不知道

如何从 Apple Watch 中的手表扩展发送短信

如果手机(本机)中存在多个未读短信,如何通知从本机(手机)读取了哪些短信?