how to request permission in android programmatically
AndroidManifest.xml
<!-- Add Write Permissions in the Manifest File-->
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<!-- Add Read Permissions in the Manifest File-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
AndroidManifest.xml
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE = 102;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// you need to request permissions if Android Version is targeting 6 (Marshmallow) or Above
// below 6 (Marshmallow) version you don't need to request for permissions at runtime
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// check if permissions are already granted or not. If not then request for permissions
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
// requesting permissions, you can add multiple permissions separated with comma(,)
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
} else {
// permissions granted. you code goes here
}
} else {
// permissions granted. you code goes here
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_DENIED) {
Toast.makeText(this, "Permissions Denied", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Accepted", Toast.LENGTH_SHORT).show();
// permissions granted. you code goes here
}
}
}
}
Projects with Source Code + Video Tutorials
You can download our Java and Android Studio Projects with Source Code and Video Tutorials.
![Spin-and-Win-App-for-Android-(Offline-Version)](https://learnoset.com/Learnoset/Projects/Spin&Win/thumnail.jpg)
Spin and Win App for Android (Offline Version)
![Login-&-Register-Screen-UI-Design---02](https://learnoset.com/Learnoset/Projects/LoginRegister2/login_register_02.jpg)
Login & Register Screen UI Design - 02
![Login-and-Register-using-Firebase-Realtime-Database](https://learnoset.com/Learnoset/Projects/LoginRegisterFirebase/thumbnail.jpg)
Login and Register using Firebase Realtime Database
If you have any Questions or Queries
You can mail us at info.learnoset@gmail.com
Follow us to learn Coding and get in touch with new Technologies.