2017-12-08 11 views
1

Ich verwende EasyPermission, um permissions vom Benutzer zu nehmen.Ich kann Nachrichten nicht programmgesteuert von Xiaomi-Telefonen lesen

@AfterPermissionGranted(PERMISSIONS_REQUEST_READ_SMS) 
private void readSMS() { 
    String[] perms = {Manifest.permission.READ_SMS}; 
    if (EasyPermissions.hasPermissions(this, Manifest.permission.READ_SMS)) { 
     initSMS(); 
    } else { 
     // Do not have permissions, request them now 
     EasyPermissions.requestPermissions(this, getString(R.string.send_sms_rationale), 
       PERMISSIONS_REQUEST_READ_SMS, Manifest.permission.READ_SMS); 
    } 
} 

In meinem initSMS() hatte ich versucht, Nachrichten von Android-Geräten zu lesen. Es funktionierte gut für alle Geräte außer Xiaomi Geräte. Ich habe TelephonyProvider Klasse verwendet, um Nachrichten zu lesen.

private void initSMS() { 
    TelephonyProvider provider = new TelephonyProvider(this); 
    List<Sms> sms = provider.getSms(TelephonyProvider.Filter.INBOX).getList(); 
    for(int i = 0; i <= sms.size() - 1; i++) { 
     Log.d("Address",sms.get(i).address); 
     Log.d("Sms",sms.get(i).body); 
     Log.d("ReceivedDate",""+sms.get(i).receivedDate)); 
     Log.d("State",""+sms.get(i).status); 
     Log.d("person",""+sms.get(i).person); 
    } 
} 

Ist sie eine Möglichkeit, alle Mitteilungen Xiaomi Geräte zu lesen?

+1

try [diese] (https://stackoverflow.com/a/41061459/3117966) und [diese] (https://stackoverflow.com/a/38309200/3117966) – Nisarg

+0

Dank .. @ Nilu und @Nisarg diese Links nützlich für mich. –

Antwort

0

Ich hoffe, dass dies für Sie arbeiten wird. Zuerst müssen Sie die Funktion isMIUI() aufrufen, um miui mobile zu überprüfen, und dann diese Funktion aufrufen. Diese Funktion wird zur Einstellung für die Annahme der Service-SMS-Erlaubnis weitergeleitet.

private void onDisplayPopupPermission() { 

     try { 
      // MIUI 8 
      Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR"); 
      localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity"); 
      localIntent.putExtra("extra_pkgname", getPackageName()); 
      localIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
      localIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(localIntent); 


     } catch (Exception e) { 
      try { 
       // MIUI 5/6/7 
       Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR"); 
       localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity"); 
       localIntent.putExtra("extra_pkgname", getPackageName()); 
       localIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
       localIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(localIntent); 


      } catch (Exception e1) { 
       // Otherwise jump to application details 
       Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); 
       Uri uri = Uri.fromParts("package", getPackageName(), null); 
       intent.setData(uri); 
       startActivity(intent); 
      } 
     } 

    } 
+0

Danke. Dieser Code funktioniert für mich. jetzt erhalte ich Erlaubnis und SMS für miui Telefon. –

Verwandte Themen