AndroidManifest.xml
<uses-permission android:name="android.permission.READ_SMS"></uses-permission><uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
MainActivity.java
package com.sjt.smspermissionruntime;import android.Manifest;import android.content.DialogInterface;import android.content.pm.PackageManager;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity {public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (checkAndRequestPermissions()) {// carry on the normal flow, as the case of permissions granted.// Toast.makeText(SignUp.this,"Granted",Toast.LENGTH_LONG).show();}}private boolean checkAndRequestPermissions() {int permissionSendMessage = ContextCompat.checkSelfPermission(this,Manifest.permission.READ_SMS);int locationPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS);List<String> listPermissionsNeeded = new ArrayList<>();if (locationPermission != PackageManager.PERMISSION_GRANTED) {listPermissionsNeeded.add(Manifest.permission.READ_SMS);}if (permissionSendMessage != PackageManager.PERMISSION_GRANTED) {listPermissionsNeeded.add(Manifest.permission.RECEIVE_SMS);}if (!listPermissionsNeeded.isEmpty()) {ActivityCompat.requestPermissions(this,listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]),REQUEST_ID_MULTIPLE_PERMISSIONS);return false;}return true;}@Overridepublic void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {Log.d("Permission", "Permission callback called-------");switch (requestCode) {case REQUEST_ID_MULTIPLE_PERMISSIONS: {Map<String, Integer> perms = new HashMap<>();// Initialize the map with both permissionsperms.put(Manifest.permission.READ_SMS, PackageManager.PERMISSION_GRANTED);perms.put(Manifest.permission.RECEIVE_SMS, PackageManager.PERMISSION_GRANTED);// Fill with actual results from userif (grantResults.length > 0) {for (int i = 0; i < permissions.length; i++)perms.put(permissions[i], grantResults[i]);// Check for both permissionsif (perms.get(Manifest.permission.READ_SMS) == PackageManager.PERMISSION_GRANTED&& perms.get(Manifest.permission.RECEIVE_SMS) == PackageManager.PERMISSION_GRANTED) {Log.d("sms", "READ_SMS & RECEIVE_SMS services permission granted");// process the normal flow//else any one or both the permissions are not granted} else {Log.d("Some", "Some permissions are not granted ask again ");//permission is denied (this is the first time, when "never ask again" is not checked) so ask again explaining the usage of permission// // shouldShowRequestPermissionRationale will return true//show the dialog or snackbar saying its necessary and try again otherwise proceed with setup.if (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_SMS) ||ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.RECEIVE_SMS)) {showDialogOK("READ_SMS and RECEIVE_SMS Services Permission required for this app",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {switch (which) {case DialogInterface.BUTTON_POSITIVE:checkAndRequestPermissions();break;case DialogInterface.BUTTON_NEGATIVE:// proceed with logic by disabling the related features or quit the app.break;}}});}//permission is denied (and never ask again is checked)//shouldShowRequestPermissionRationale will return falseelse {// Toast.makeText(this, "Go to settings and enable permissions", Toast.LENGTH_LONG).show();// //proceed with logic by disabling the related features or quit the app.}}}}}}private void showDialogOK(String message, DialogInterface.OnClickListener okListener) {new AlertDialog.Builder(this).setMessage(message).setPositiveButton("OK", okListener).setNegativeButton("Cancel", okListener).create().show();}}
Hii ! Sir I have a dificulty is databack app not verified automatically but send otp and igot otp plz,help what I do I need to write otp in app verification I download databack app and app required sms read permission but setting permission sms are not show so, where I save the file to get permission from databack
ReplyDelete