MainActivity.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package com.yanyi.basepermission;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.net.Uri;
  6. import android.os.Build;
  7. import android.os.Bundle;
  8. import android.util.Log;
  9. import androidx.annotation.Nullable;
  10. import androidx.appcompat.app.AppCompatActivity;
  11. import com.benyanyi.permissionlib.callback.PermissionCallBack;
  12. import com.benyanyi.permissionlib.PermissionHelper;
  13. /**
  14. * @author myLove
  15. * @date 2018-06-06 11:30
  16. * @email ben@yanyi.red
  17. * @overview
  18. */
  19. public class MainActivity extends AppCompatActivity {
  20. @Override
  21. protected void onCreate(@Nullable Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.act_main);
  24. PermissionHelper.with(this)
  25. .setPermissions(Manifest.permission.READ_PHONE_STATE,
  26. Manifest.permission.CALL_PHONE,
  27. Manifest.permission.ACCESS_COARSE_LOCATION,
  28. Manifest.permission.ACCESS_FINE_LOCATION,
  29. Manifest.permission.WRITE_EXTERNAL_STORAGE,
  30. Manifest.permission.MANAGE_EXTERNAL_STORAGE)
  31. .setDefaultPermissionDialogInfo()
  32. .request(new PermissionCallBack() {
  33. @Override
  34. public void onSuccess() {
  35. log("请求成功");
  36. }
  37. @Override
  38. public void onFailure(String[] failurePermissions) {
  39. log("请求失败");
  40. }
  41. @Override
  42. public void onComplete() {
  43. log("请求结束");
  44. }
  45. });
  46. // .onPermissionSuccess(() -> log("请求成功"))
  47. // .onPermissionFailure(strings -> {
  48. // StringBuilder str = new StringBuilder();
  49. // for (String s : strings) {
  50. // str.append("\n").append(s);
  51. // }
  52. // log(str.toString());
  53. // })
  54. // .onPermissionComplete(() -> log("请求完成"));
  55. }
  56. private Intent getAppDetailSettingIntent(Activity activity) {
  57. Intent localIntent = new Intent();
  58. localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  59. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
  60. localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
  61. localIntent.setData(Uri.fromParts("package", activity.getApplicationContext().getPackageName(), null));
  62. } else {
  63. localIntent.setAction(Intent.ACTION_VIEW);
  64. localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
  65. localIntent.putExtra("com.android.settings.ApplicationPkgName", activity.getApplicationContext().getPackageName());
  66. }
  67. return localIntent;
  68. }
  69. private void log(Object object) {
  70. Log.d(defaultTag(), object.toString());
  71. }
  72. private String defaultTag() {
  73. StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
  74. StackTraceElement log = stackTrace[1];
  75. String tag = null;
  76. for (int i = 1; i < stackTrace.length; i++) {
  77. StackTraceElement e = stackTrace[i];
  78. if (!e.getClassName().equals(log.getClassName())
  79. && !"defaultTag".equals(e.getMethodName())
  80. && !"log".equals(e.getMethodName())) {
  81. tag = e.getClassName() + "." + e.getMethodName();
  82. break;
  83. }
  84. }
  85. if (tag == null) {
  86. tag = log.getClassName() + "." + log.getMethodName();
  87. }
  88. return tag;
  89. }
  90. }