About Android Permissions





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I made an Android App, which have some permissions, everything is ok but problem is that when user don't click on Allow or Deny(on Permission Dialog at first time app launch) button with in few seconds(approx 3 to 5 seconds) then my app not functioning properly it's register page, login and some other functions not working, if user click within few seconds then its work properly without any issue, i also check this from Internet but nobody clear my issue please help. FCM token not generating from Firebase.



Error is:-



E/FirebaseInstanceId: Unable to get master token
java.lang.SecurityException: getDeviceId: Neither user 10493 nor current process has android.permission.READ_PHONE_STATE.
at android.os.Parcel.readException(Parcel.java:2004)
at android.os.Parcel.readException(Parcel.java:1950)
at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:5030)
at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1013)
at com.Abc.AppName.FirebaseInstanceIDService.id(FirebaseInstanceIDService.java:63)
at com.Abc.AppName.FirebaseInstanceIDService.onTokenRefresh(FirebaseInstanceIDService.java:35)
at com.google.firebase.iid.FirebaseInstanceIdService.zza(Unknown Source:187)
at com.google.firebase.iid.FirebaseInstanceIdService.handleIntent(Unknown Source:306)
at com.google.firebase.iid.zzc.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)


Manifest:-



<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE"/>


Splash:-



if (Build.VERSION.SDK_INT >= 23) {
String PERMISSIONS = {android.Manifest.permission.INTERNET,
android.Manifest.permission.ACCESS_NETWORK_STATE,
android.Manifest.permission.READ_PHONE_STATE,
Manifest.permission.CALL_PHONE
};
if (!hasPermissions(mContext, PERMISSIONS)) {
ActivityCompat.requestPermissions((Activity) mContext, PERMISSIONS, REQUEST);
} else {
callNextActivity();
}
} else {
callNextActivity();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions, @NonNull int grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
callNextActivity();
} else {
Toast.makeText(mContext, R.string.permission_denied, Toast.LENGTH_LONG).show();
}
}
}
}
private static boolean hasPermissions(Context context, String... permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}


FirebaseInstanceID:-



@Override
public void onTokenRefresh() {
token = FirebaseInstanceId.getInstance().getToken();
device_id = id(this);
sharedPreferences = getSharedPreferences(getString(R.string.prefs), 0);
sharedPreferences.edit().putString("fcm_token", token).apply();
device_id = sharedPreferences.getString(PREF_UNIQUE_ID, "");
Log.e("fcm_token", token + " " + device_id);
executeMethod();
}
public synchronized static String id(Context context) {
if (uniqueID == null) {
SharedPreferences sharedPrefs = context.getSharedPreferences(context.getString(R.string.prefs), Context.MODE_PRIVATE);
uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);
if (uniqueID == null) {
mngr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
}
uniqueID = mngr.getDeviceId();
Log.e("UNIQUEID", uniqueID);
sharedPrefs.edit().putString(PREF_UNIQUE_ID, uniqueID).apply();
}
}
return uniqueID;
}









share|improve this question































    0















    I made an Android App, which have some permissions, everything is ok but problem is that when user don't click on Allow or Deny(on Permission Dialog at first time app launch) button with in few seconds(approx 3 to 5 seconds) then my app not functioning properly it's register page, login and some other functions not working, if user click within few seconds then its work properly without any issue, i also check this from Internet but nobody clear my issue please help. FCM token not generating from Firebase.



    Error is:-



    E/FirebaseInstanceId: Unable to get master token
    java.lang.SecurityException: getDeviceId: Neither user 10493 nor current process has android.permission.READ_PHONE_STATE.
    at android.os.Parcel.readException(Parcel.java:2004)
    at android.os.Parcel.readException(Parcel.java:1950)
    at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:5030)
    at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1013)
    at com.Abc.AppName.FirebaseInstanceIDService.id(FirebaseInstanceIDService.java:63)
    at com.Abc.AppName.FirebaseInstanceIDService.onTokenRefresh(FirebaseInstanceIDService.java:35)
    at com.google.firebase.iid.FirebaseInstanceIdService.zza(Unknown Source:187)
    at com.google.firebase.iid.FirebaseInstanceIdService.handleIntent(Unknown Source:306)
    at com.google.firebase.iid.zzc.run(Unknown Source:4)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)


    Manifest:-



    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE"/>


    Splash:-



    if (Build.VERSION.SDK_INT >= 23) {
    String PERMISSIONS = {android.Manifest.permission.INTERNET,
    android.Manifest.permission.ACCESS_NETWORK_STATE,
    android.Manifest.permission.READ_PHONE_STATE,
    Manifest.permission.CALL_PHONE
    };
    if (!hasPermissions(mContext, PERMISSIONS)) {
    ActivityCompat.requestPermissions((Activity) mContext, PERMISSIONS, REQUEST);
    } else {
    callNextActivity();
    }
    } else {
    callNextActivity();
    }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String permissions, @NonNull int grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode) {
    case REQUEST: {
    if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
    callNextActivity();
    } else {
    Toast.makeText(mContext, R.string.permission_denied, Toast.LENGTH_LONG).show();
    }
    }
    }
    }
    private static boolean hasPermissions(Context context, String... permissions) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
    for (String permission : permissions) {
    if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
    return false;
    }
    }
    }
    return true;
    }


    FirebaseInstanceID:-



    @Override
    public void onTokenRefresh() {
    token = FirebaseInstanceId.getInstance().getToken();
    device_id = id(this);
    sharedPreferences = getSharedPreferences(getString(R.string.prefs), 0);
    sharedPreferences.edit().putString("fcm_token", token).apply();
    device_id = sharedPreferences.getString(PREF_UNIQUE_ID, "");
    Log.e("fcm_token", token + " " + device_id);
    executeMethod();
    }
    public synchronized static String id(Context context) {
    if (uniqueID == null) {
    SharedPreferences sharedPrefs = context.getSharedPreferences(context.getString(R.string.prefs), Context.MODE_PRIVATE);
    uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);
    if (uniqueID == null) {
    mngr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
    }
    uniqueID = mngr.getDeviceId();
    Log.e("UNIQUEID", uniqueID);
    sharedPrefs.edit().putString(PREF_UNIQUE_ID, uniqueID).apply();
    }
    }
    return uniqueID;
    }









    share|improve this question



























      0












      0








      0








      I made an Android App, which have some permissions, everything is ok but problem is that when user don't click on Allow or Deny(on Permission Dialog at first time app launch) button with in few seconds(approx 3 to 5 seconds) then my app not functioning properly it's register page, login and some other functions not working, if user click within few seconds then its work properly without any issue, i also check this from Internet but nobody clear my issue please help. FCM token not generating from Firebase.



      Error is:-



      E/FirebaseInstanceId: Unable to get master token
      java.lang.SecurityException: getDeviceId: Neither user 10493 nor current process has android.permission.READ_PHONE_STATE.
      at android.os.Parcel.readException(Parcel.java:2004)
      at android.os.Parcel.readException(Parcel.java:1950)
      at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:5030)
      at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1013)
      at com.Abc.AppName.FirebaseInstanceIDService.id(FirebaseInstanceIDService.java:63)
      at com.Abc.AppName.FirebaseInstanceIDService.onTokenRefresh(FirebaseInstanceIDService.java:35)
      at com.google.firebase.iid.FirebaseInstanceIdService.zza(Unknown Source:187)
      at com.google.firebase.iid.FirebaseInstanceIdService.handleIntent(Unknown Source:306)
      at com.google.firebase.iid.zzc.run(Unknown Source:4)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
      at java.lang.Thread.run(Thread.java:764)


      Manifest:-



      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.READ_PHONE_STATE" />
      <uses-permission android:name="android.permission.CALL_PHONE"/>


      Splash:-



      if (Build.VERSION.SDK_INT >= 23) {
      String PERMISSIONS = {android.Manifest.permission.INTERNET,
      android.Manifest.permission.ACCESS_NETWORK_STATE,
      android.Manifest.permission.READ_PHONE_STATE,
      Manifest.permission.CALL_PHONE
      };
      if (!hasPermissions(mContext, PERMISSIONS)) {
      ActivityCompat.requestPermissions((Activity) mContext, PERMISSIONS, REQUEST);
      } else {
      callNextActivity();
      }
      } else {
      callNextActivity();
      }
      }
      @Override
      public void onRequestPermissionsResult(int requestCode, @NonNull String permissions, @NonNull int grantResults) {
      super.onRequestPermissionsResult(requestCode, permissions, grantResults);
      switch (requestCode) {
      case REQUEST: {
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
      callNextActivity();
      } else {
      Toast.makeText(mContext, R.string.permission_denied, Toast.LENGTH_LONG).show();
      }
      }
      }
      }
      private static boolean hasPermissions(Context context, String... permissions) {
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
      for (String permission : permissions) {
      if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
      return false;
      }
      }
      }
      return true;
      }


      FirebaseInstanceID:-



      @Override
      public void onTokenRefresh() {
      token = FirebaseInstanceId.getInstance().getToken();
      device_id = id(this);
      sharedPreferences = getSharedPreferences(getString(R.string.prefs), 0);
      sharedPreferences.edit().putString("fcm_token", token).apply();
      device_id = sharedPreferences.getString(PREF_UNIQUE_ID, "");
      Log.e("fcm_token", token + " " + device_id);
      executeMethod();
      }
      public synchronized static String id(Context context) {
      if (uniqueID == null) {
      SharedPreferences sharedPrefs = context.getSharedPreferences(context.getString(R.string.prefs), Context.MODE_PRIVATE);
      uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);
      if (uniqueID == null) {
      mngr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
      if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
      }
      uniqueID = mngr.getDeviceId();
      Log.e("UNIQUEID", uniqueID);
      sharedPrefs.edit().putString(PREF_UNIQUE_ID, uniqueID).apply();
      }
      }
      return uniqueID;
      }









      share|improve this question
















      I made an Android App, which have some permissions, everything is ok but problem is that when user don't click on Allow or Deny(on Permission Dialog at first time app launch) button with in few seconds(approx 3 to 5 seconds) then my app not functioning properly it's register page, login and some other functions not working, if user click within few seconds then its work properly without any issue, i also check this from Internet but nobody clear my issue please help. FCM token not generating from Firebase.



      Error is:-



      E/FirebaseInstanceId: Unable to get master token
      java.lang.SecurityException: getDeviceId: Neither user 10493 nor current process has android.permission.READ_PHONE_STATE.
      at android.os.Parcel.readException(Parcel.java:2004)
      at android.os.Parcel.readException(Parcel.java:1950)
      at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:5030)
      at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1013)
      at com.Abc.AppName.FirebaseInstanceIDService.id(FirebaseInstanceIDService.java:63)
      at com.Abc.AppName.FirebaseInstanceIDService.onTokenRefresh(FirebaseInstanceIDService.java:35)
      at com.google.firebase.iid.FirebaseInstanceIdService.zza(Unknown Source:187)
      at com.google.firebase.iid.FirebaseInstanceIdService.handleIntent(Unknown Source:306)
      at com.google.firebase.iid.zzc.run(Unknown Source:4)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
      at java.lang.Thread.run(Thread.java:764)


      Manifest:-



      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.READ_PHONE_STATE" />
      <uses-permission android:name="android.permission.CALL_PHONE"/>


      Splash:-



      if (Build.VERSION.SDK_INT >= 23) {
      String PERMISSIONS = {android.Manifest.permission.INTERNET,
      android.Manifest.permission.ACCESS_NETWORK_STATE,
      android.Manifest.permission.READ_PHONE_STATE,
      Manifest.permission.CALL_PHONE
      };
      if (!hasPermissions(mContext, PERMISSIONS)) {
      ActivityCompat.requestPermissions((Activity) mContext, PERMISSIONS, REQUEST);
      } else {
      callNextActivity();
      }
      } else {
      callNextActivity();
      }
      }
      @Override
      public void onRequestPermissionsResult(int requestCode, @NonNull String permissions, @NonNull int grantResults) {
      super.onRequestPermissionsResult(requestCode, permissions, grantResults);
      switch (requestCode) {
      case REQUEST: {
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
      callNextActivity();
      } else {
      Toast.makeText(mContext, R.string.permission_denied, Toast.LENGTH_LONG).show();
      }
      }
      }
      }
      private static boolean hasPermissions(Context context, String... permissions) {
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
      for (String permission : permissions) {
      if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
      return false;
      }
      }
      }
      return true;
      }


      FirebaseInstanceID:-



      @Override
      public void onTokenRefresh() {
      token = FirebaseInstanceId.getInstance().getToken();
      device_id = id(this);
      sharedPreferences = getSharedPreferences(getString(R.string.prefs), 0);
      sharedPreferences.edit().putString("fcm_token", token).apply();
      device_id = sharedPreferences.getString(PREF_UNIQUE_ID, "");
      Log.e("fcm_token", token + " " + device_id);
      executeMethod();
      }
      public synchronized static String id(Context context) {
      if (uniqueID == null) {
      SharedPreferences sharedPrefs = context.getSharedPreferences(context.getString(R.string.prefs), Context.MODE_PRIVATE);
      uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);
      if (uniqueID == null) {
      mngr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
      if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
      }
      uniqueID = mngr.getDeviceId();
      Log.e("UNIQUEID", uniqueID);
      sharedPrefs.edit().putString(PREF_UNIQUE_ID, uniqueID).apply();
      }
      }
      return uniqueID;
      }






      java android android-permissions






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 4 at 5:12









      EKN

      1,357826




      1,357826










      asked Jan 4 at 5:04









      Office KOffice K

      11




      11
























          2 Answers
          2






          active

          oldest

          votes


















          0














          You can use another activity to request permissions. If user allows, just start your main activity, else kill request activity or show popup to warn user.






          share|improve this answer































            0














            The problem is you are trying to get id of the device in onTokenRefresh . This method will be called as soon as the app gets installed and opened first time . By this time your app wont have the permission .



            So solution to this problem .



            In onTokenRefresh just save the token in shared preferences and when you reach the activity ,request for permission and after permission is granted get the token from shared preferences and device id and do your stuff .






            share|improve this answer


























            • This error only showing in Android Oreo, Nougat or other below is working fine.

              – Office K
              Jan 4 at 6:55











            • because runtime permission is needed only on android version 6.0+

              – Manohar Reddy
              Jan 4 at 7:11












            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54033348%2fabout-android-permissions%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            You can use another activity to request permissions. If user allows, just start your main activity, else kill request activity or show popup to warn user.






            share|improve this answer




























              0














              You can use another activity to request permissions. If user allows, just start your main activity, else kill request activity or show popup to warn user.






              share|improve this answer


























                0












                0








                0







                You can use another activity to request permissions. If user allows, just start your main activity, else kill request activity or show popup to warn user.






                share|improve this answer













                You can use another activity to request permissions. If user allows, just start your main activity, else kill request activity or show popup to warn user.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 4 at 5:29









                C. SoyluC. Soylu

                343




                343

























                    0














                    The problem is you are trying to get id of the device in onTokenRefresh . This method will be called as soon as the app gets installed and opened first time . By this time your app wont have the permission .



                    So solution to this problem .



                    In onTokenRefresh just save the token in shared preferences and when you reach the activity ,request for permission and after permission is granted get the token from shared preferences and device id and do your stuff .






                    share|improve this answer


























                    • This error only showing in Android Oreo, Nougat or other below is working fine.

                      – Office K
                      Jan 4 at 6:55











                    • because runtime permission is needed only on android version 6.0+

                      – Manohar Reddy
                      Jan 4 at 7:11
















                    0














                    The problem is you are trying to get id of the device in onTokenRefresh . This method will be called as soon as the app gets installed and opened first time . By this time your app wont have the permission .



                    So solution to this problem .



                    In onTokenRefresh just save the token in shared preferences and when you reach the activity ,request for permission and after permission is granted get the token from shared preferences and device id and do your stuff .






                    share|improve this answer


























                    • This error only showing in Android Oreo, Nougat or other below is working fine.

                      – Office K
                      Jan 4 at 6:55











                    • because runtime permission is needed only on android version 6.0+

                      – Manohar Reddy
                      Jan 4 at 7:11














                    0












                    0








                    0







                    The problem is you are trying to get id of the device in onTokenRefresh . This method will be called as soon as the app gets installed and opened first time . By this time your app wont have the permission .



                    So solution to this problem .



                    In onTokenRefresh just save the token in shared preferences and when you reach the activity ,request for permission and after permission is granted get the token from shared preferences and device id and do your stuff .






                    share|improve this answer















                    The problem is you are trying to get id of the device in onTokenRefresh . This method will be called as soon as the app gets installed and opened first time . By this time your app wont have the permission .



                    So solution to this problem .



                    In onTokenRefresh just save the token in shared preferences and when you reach the activity ,request for permission and after permission is granted get the token from shared preferences and device id and do your stuff .







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Jan 4 at 6:04

























                    answered Jan 4 at 5:16









                    Manohar ReddyManohar Reddy

                    7,12244066




                    7,12244066













                    • This error only showing in Android Oreo, Nougat or other below is working fine.

                      – Office K
                      Jan 4 at 6:55











                    • because runtime permission is needed only on android version 6.0+

                      – Manohar Reddy
                      Jan 4 at 7:11



















                    • This error only showing in Android Oreo, Nougat or other below is working fine.

                      – Office K
                      Jan 4 at 6:55











                    • because runtime permission is needed only on android version 6.0+

                      – Manohar Reddy
                      Jan 4 at 7:11

















                    This error only showing in Android Oreo, Nougat or other below is working fine.

                    – Office K
                    Jan 4 at 6:55





                    This error only showing in Android Oreo, Nougat or other below is working fine.

                    – Office K
                    Jan 4 at 6:55













                    because runtime permission is needed only on android version 6.0+

                    – Manohar Reddy
                    Jan 4 at 7:11





                    because runtime permission is needed only on android version 6.0+

                    – Manohar Reddy
                    Jan 4 at 7:11


















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54033348%2fabout-android-permissions%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Monofisismo

                    Angular Downloading a file using contenturl with Basic Authentication

                    Olmecas