package com.hjq.permissions.demo; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import com.hjq.permissions.OnPermission; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import com.hjq.toast.ToastUtils; import com.hjq.toast.style.ToastWhiteStyle; import java.util.List; /** * author : Android 轮子哥 * github : https://github.com/getActivity/XXPermissions * time : 2018/06/15 * desc : XXPermissions 权限请求框架使用案例 */ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化吐司工具类 ToastUtils.init(getApplication(), new ToastWhiteStyle(getApplicationContext())); } public void requestPermission(View view) { XXPermissions.with(this) // 可设置被拒绝后继续申请,直到用户授权或者永久拒绝 //.constantRequest() // 支持请求6.0悬浮窗权限8.0请求安装权限 //.permission(Permission.REQUEST_INSTALL_PACKAGES) // 不指定权限则自动获取清单中的危险权限 .permission(Permission.Group.STORAGE, Permission.Group.CALENDAR) .request(new OnPermission() { @Override public void hasPermission(List<String> granted, boolean all) { if (all) { ToastUtils.show("获取权限成功"); }else { ToastUtils.show("获取权限成功,部分权限未正常授予"); } } @Override public void noPermission(List<String> denied, boolean quick) { if(quick) { ToastUtils.show("被永久拒绝授权,请手动授予权限"); //如果是被永久拒绝就跳转到应用权限系统设置页面 XXPermissions.startPermissionActivity(MainActivity.this); } else { ToastUtils.show("获取权限失败"); } } }); } public void hasPermission(View view) { if (XXPermissions.hasPermission(MainActivity.this, Permission.Group.STORAGE)) { ToastUtils.show("已经获取到权限,不需要再次申请了"); }else { ToastUtils.show("还没有获取到权限或者部分权限未授予"); } } public void startPermissionPage(View view) { XXPermissions.startPermissionActivity(MainActivity.this); } }