- If you are targeting Marshmallow, you need to request permission at runtime other than the manifest.
Manifesto -
<uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.READ_SMS" />
Java Activity Class -
final int REQ_CODE = 100; void requestPermission(){ if (ActivityCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) { CTLogs.printLogs( "Permission is not granted, requesting"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS,Manifest.permission.READ_SMS,Manifest.permission.RECEIVE_SMS}, REQ_CODE); } else { CTLogs.printLogs("Permission has been granted"); readSMS(); } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == REQ_CODE) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { CTLogs.printLogs("Permission has been granted"); readSMS(); } else { CTLogs.printLogs("Permission denied !!!"); } } }
source share