2017-12-08 11 views
1

私はEasyPermissionを利用してpermissionsを利用しています。Xiaomiの電話からプログラムでプログラムを読むことができません

@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); 
    } 
} 

私のinitSMS()で私はAndroidデバイスからメッセージを読み込もうとしていました。 Xiaomiデバイスを除くすべてのデバイスで正常に機能しました。私はTelephonyProviderクラスを使ってメッセージを読みました。

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); 
    } 
} 

Xiaomiデバイスからのすべてのメッセージを読み取る方法はありますか?

+1

試み[この](https://stackoverflow.com/a/41061459/3117966)と[この](https://stackoverflow.com/a/38309200/3117966) – Nisarg

+0

おかげ.. NILU @ @Nisargこれらのリンクは私にとって有益です。 –

答えて

0

私はこれがうまくいくと思います。まずmiui mobileをチェックするために関数isMIUI()を呼び出してから、上記の関数を呼び出す必要があります。この機能は、サービスSMSの許可を得るための設定にリダイレクトされます。

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

ありがとうございます。このコードは私のために働いています。今私はmiui電話の許可とSMSを取得しています。 –

関連する問題