Thursday, June 13, 2019

Multiple runtime permissions in single dialog

I had already defined run time permission in my earlier post Run time permissions android .I will be brief in this article for detail refer this link  Run time permissions detail

In this i will discuss how to ask for multiple run time permissions in single dialog

 

Manifest file


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"    
package="com.vishalsingh.runtimepermission">
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>  
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>   
 <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>

Java file


package com.vishalsingh.runtimepermission;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;import android.widget.Toast;
public class MainActivity extends AppCompatActivity {

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.activity_main);        
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (checkSelfPermission(Manifest.permission.READ_CONTACTS)+ checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {
        if (shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)&&shouldShowRequestPermissionRationale(Manifest.permission.READ_EXTERNAL_STORAGE)) {

                    requestPermissions(new String[]{Manifest.permission.READ_CONTACTS,Manifest.permission.READ_EXTERNAL_STORAGE}, 1);                } else {
                    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS,Manifest.permission.READ_EXTERNAL_STORAGE}, 1);                }
            }
        } else {
        }

    }

    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        if (requestCode == 1) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED &&grantResults[1]== PackageManager.PERMISSION_GRANTED) {

                Toast.makeText(this, "permission granted", Toast.LENGTH_SHORT).show();

            }

        }


    }}





XML file

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
 xmlns:android="http://schemas.android.com/apk/res/android"   
 xmlns:app="http://schemas.android.com/apk/res-auto"  
  xmlns:tools="http://schemas.android.com/tools"  
  android:layout_width="match_parent"
    android:layout_height="match_parent" 
   tools:context=".MainActivity">
    <TextView       
 android:layout_width="wrap_content"  
      android:layout_height="wrap_content"  
      android:text="Hello World!"    
    app:layout_constraintBottom_toBottomOf="parent"   
     app:layout_constraintLeft_toLeftOf="parent"      
  app:layout_constraintRight_toRightOf="parent"      
  app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>





No comments:

Alert Dialog Box

Alert Dialog Box Android AlertDialog   can be used to display the dialog message with OK and Cancel buttons. It can be used to inter...