10

Im Anschluss ist mein Code:Redmi Telefone SMS Berechtigungen nicht gefragt und daher nicht sms lesen

<!-- 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 ist der zugehörige BroadcastReceiver Diese Ausnahme Redmi Geräte in allen anderen Telefonen funktioniert. In Redmi-Telefonen müssen Sie Autostart & andere Berechtigungen in der Permissions App manuell aktivieren (diese App behandelt Berechtigungen in Redmi-Telefone). Ich sehe Facebook, WhatsApp, etc. wenn installiert, fragen die Berechtigungen. Möchte wissen, wie das geht.

Ich sah Fragen wie this & this die das gleiche fragen, aber beide sind unbeantwortet. Ich habe versucht, android:enabled="true", android:exported="true" in das Empfänger-XML-Snippet wie in here erwähnt. Aber keiner von denen arbeitet.

Edit: Ich verwende data sms (auch bekannt als port sms). Ich verifizierte mit normalen sms auch und das Problem existiert dort auch auf Redmi Telefone

+0

was ist dein targetSdk? – Nisarg

+0

targetSdkVersion 24 – ranjjose

+0

Ich nehme an, Sie haben die Laufzeitberechtigungen überprüft, falls vorhanden! – Nisarg

Antwort

2

Nach langer Zeit des Versuchens, erhielt MI SMS-Erlaubnis (durch SMS Versorger). Fügen Sie diese Methode (Content-Provider-Methode) zu Ihrer Aktivität oder Ihrem Fragment hinzu. können Sie die Erlaubnis erhalten.

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

} 

Gib es versuchen, es hat für mich funktioniert.

+0

Danke, werde das so schnell wie möglich versuchen !! – ranjjose

+0

Hey bitte geben Sie Feedback bro ..... Seine Arbeit an MI 4i ... So dass ich testen und einige Vorsichtsmaßnahmen für andere MI Telefon nehmen werde –

+0

Update-Gerät Liste bitte ...... es wird hilfreich für uns –