Coder32
Coder32

Reputation: 39

Incompatible types Android allow permission?

I am running this code in the onCreate method to try to get permission, but for some reason it is giving me the error:

Incompatible types required int found boolean for this part: if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_SMS) + ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS))

 @Override
    protected void onCreate(Bundle savedInstanceState) {


            if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_SMS) +
                    ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS))
        != PackageManager.PERMISSION_GRANTED) {
            if (AppCompatActivity.shouldShowRequestPermissionRationale(this,"Manifest.permission.READ_SMS") ||
                    AppCompatActivity.shouldShowRequestPermissionRationale(this,"Manifest.permission.READ_SMS")) {

                // Show an explanation to the user *asynchronously* -- don't block
                // this thread waiting for the user's response! After the user
                // sees the explanation, try again to request the permission.

            } else {

                // No explanation needed; request the permission
                ActivityCompat.requestPermissions(this,
                        new String[]{"Manifest.permission.READ_SMS, Manifest.permission.SEND_SMS"},
                        REQUEST_CODE);

                // REQUEST_CODE is an
                // app-defined int constant. The callback method gets the
                // result of the request.
            }
        }

else {
            // Permission has already been granted
        }

Upvotes: 1

Views: 1087

Answers (2)

Dacar
Dacar

Reputation: 21

An open round bracket misses at the start of your 'if' condition:

if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_SMS) + ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS)) != PackageManager.PERMISSION_GRANTED){......}

You have 3 open brackets and 4 close ones.

Here what you should have:

if ((ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_SMS) + ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS)) != PackageManager.PERMISSION_GRANTED){.....}

Upvotes: 1

touhid udoy
touhid udoy

Reputation: 4442

ContextCompat.checkSelfPermission(MainActivity.this,
    android.Manifest.permission.READ_SMS) + 
    ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS))
    != PackageManager.PERMISSION_GRANTED

This portion is not a valid java statement.

You might want something like this:

if ((ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED)
        ||    (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS)
    != PackageManager.PERMISSION_GRANTED))

Upvotes: 0

Related Questions