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

时间:2016-07-05 05:39:38

标签: 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手机中,你必须手动打开自动启动和放大器。 权限应用中的其他权限(此应用处理Redmi手机中的权限)。在安装时询问权限,我看到Facebook,whatsapp等。想知道如何做到这一点。

我看到了像this和&amp; this提出同样的问题,但两者都没有答案。我尝试将android:enabled="true"android:exported="true"添加到here中提到的接收器xml片段中。但这些都没有奏效。

编辑:我正在使用data sms(也称为port sms)。我也用正常的短信进行了验证,Redmi手机上也存在问题

1 个答案:

答案 0 :(得分:2)

经过长时间的尝试,获得了MI短信权限(通过短信服务提供商)。 将此方法(内容提供者方法)与您的活动或片段一起添加。 你将获得许可。

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

}

尝试一下,它对我有用。