Thursday, March 12, 2020

How To Multiple Permissions In Android Studio


1) AndroidMenifest.xml

<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
 package="com.example.multiplepermissiontest">     
 <uses-permission android:name="android.permission.CAMERA"/> 
 <uses-permission android:name="android.permission.READ_CONTACTS"/> 
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
 <application 
      android:allowBackup="true"  
      android:icon="@mipmap/ic_launcher" 
      android:label="@string/app_name" 
      android:roundIcon="@mipmap/ic_launcher_round" 
      android:supportsRtl="true" 
      android:theme="@style/AppTheme"> 
 <activity android:name=".MainActivity"> 
 <intent-filter> 
 <action android:name="android.intent.action.MAIN" /> 
 <category android:name="android.intent.category.LAUNCHER" /> 
 </intent-filter> 
 </activity> 
 </application>
</manifest>

2). activity_main.xml

Layout xml file 


<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="center"
     android:orientation="horizontal" 
     android:padding="10dp"
     tools:context=".MainActivity">
    <Button 
         android:id="@+id/btn_request" 
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Request Permission"
         android:layout_weight="1"/> 
    <Button         
         android:id="@+id/btn_check"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:text="Check Permission" 
         android:layout_weight="1"/> 
</LinearLayout>

3). MainActivity.java

In this class we have implement CHECK and REQUEST an CAMERA, READ_CONTACT and READ_EXTERNAL_STORAGE



package com.example.multiplepermissiontest;
import android.app.AlertDialog; 
import android.content.DialogInterface;
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.Button; 
import android.widget.Toast;
import androidx.annotation.NonNull; 
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class MainActivity extends AppCompatActivity {

    static final int REQUEST_CODE = 123;  
// value must you choose any value 123, 100, 111 etc 
 Button btn_request; 
 Button btn_check;
    @Override 
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main);
        btn_request = findViewById(R.id.btn_request); 
        btn_check = findViewById(R.id.btn_check);
        btn_request.setOnClickListener(new View.OnClickListener() {
       @Override 
       public void onClick(View v) {
                if (ContextCompat.checkSelfPermission(MainActivity.this, "android.permission.CAMERA") +
                        ContextCompat.checkSelfPermission(MainActivity.this, "android.permission.READ_CONTACTS") +
                        ContextCompat.checkSelfPermission(MainActivity.this, "android.permission.READ_EXTERNAL_STORAGE") == 0) {
                    Toast.makeText(MainActivity.this, "Permission already granted..", Toast.LENGTH_SHORT).show(); 
 } else if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, "android.permission.CAMERA") ||
                        ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, "android.permission.READ_CONTACTS") ||
                        ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, "android.permission.READ_EXTERNAL_STORAGE")) 
{
                     
 final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
 builder.setTitle("Grant those Permission"); 
 builder.setMessage("Camera, Read Contact and Read Storage"); 
 builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
 @Override 
 public void onClick(DialogInterface dialog, int which) {
 ActivityCompat.requestPermissions(MainActivity.this,
 new String[]{"android.permission.CAMERA", "android.permission.READ_CONTACTS",
 "android.permission.READ_EXTERNAL_STORAGE"}, MainActivity.REQUEST_CODE); 
 }
 }); 
 builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override 
                       public void onClick(DialogInterface dialog, int which) {
                            // no code 
                     }
                    });
                     builder.create().show(); 
  } else {
                    ActivityCompat.requestPermissions(MainActivity.this,
                    new String[]{"android.permission.CAMERA", "android.permission.READ_CONTACTS",
 "android.permission.READ_EXTERNAL_STORAGE"}, MainActivity.REQUEST_CODE);                }
            }
        });        btn_check.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {

                Intent intent = new Intent();
                intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); 
 intent.setData(Uri.fromParts("package", MainActivity.this.getPackageName(), null)); 
                startActivity(intent); 
 }
        }); 
     }

    @Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
 if (requestCode != REQUEST_CODE) {
            return; 
 }
        // if permissions more then 3 then increment upto permissions 
        if (grantResults.length <= 0 || grantResults[0] + grantResults[1] + grantResults[2] != 0)
       {
       Toast.makeText(MainActivity.this, "Permissions Denied..", Toast.LENGTH_SHORT).show(); 
 } else {
            Toast.makeText(MainActivity.this, "Permissions Granted..", Toast.LENGTH_SHORT).show(); 
 }
    }
}

1 comment:

  1. Tipster T-Rex - TITS AT TIPS - Titanium Art
    T-Rex was titanium mens wedding bands the first where is titanium found T-Rex-style dinosaur-themed dinosaur-themed cartoon. of 2018 ford ecosport titanium their cartoon-inspired characters: the babylisspro nano titanium hair dryer main titanium wheels dinosaur head,

    ReplyDelete