android 6.0 权限请求工具类
2016-10-19 10:53
429 查看
//导入的包 import android.app.Activity; import android.content.pm.PackageManager; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.util.Log; /** * 项目名称:LiuTest * 类描述: 权限请求工具类 * 创建人:liubing * 创建时间:2016/10/19 9:44 * 修改人:Administrator * 修改时间:2016/10/19 9:44 * 修改备注: * 使用步骤 * 1.在activity中在PERMISSIONS数组中放入该类中所有用到的权限 * private String [] PERMISSIONS = new String[]{ * Manifest.permission.CALL_PHONE, * Manifest.permission.READ_PHONE_STATE * }; * 2. 点击拨打电话时调用requestPer方法判断 * findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { * @Override public void onClick(View v) { * if (RequstPermissionsUtil.requestPer(MainActivity.this, PERMISSIONS[0],0)) * { * Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:4001851518")); * startActivity(intent); * } * } * }); * 3.在activity中的onRequestPermissionsResult方法中调用RequstPermissionsUtil.onRequestPermissionsResult方法将数据传进去进行回调 * @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { * super.onRequestPermissionsResult(requestCode, permissions, grantResults); * RequstPermissionsUtil.onRequestPermissionsResult(MainActivity.this,PERMISSIONS[requestCode],requestCode,permissions,grantResults); * } */ public class RequstPermissionsUtil { private static boolean isper;//返回是否获取到权限 //权限判断 /** * @param activity 当前的activity * @param permiss 请求的权限 * @param requestCode 请求码 * @return */ public static boolean requestPer(Activity activity, String permiss, int requestCode) { if (ContextCompat.checkSelfPermission(activity, permiss) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(activity, new String[]{permiss}, requestCode); Log.e("222222222", "请求权限"); return isper; } else { //请求成功之后 isper = true; return true; } } /** * @param activity 当前的activity * @param permiss 请求的权限 * @param requestCode activity中的onRequestPermissionsResult方法自带的参数 * @param permissions activity中的onRequestPermissionsResult方法自带的参数 * @param grantResults activity中的onRequestPermissionsResult方法自带的参数 */ public static void onRequestPermissionsResult(Activity activity, String permiss, int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case 1: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { requestPer(activity, permiss, requestCode); } else { Log.e("333333333333333", "没有获取到权限"); isper = false; } Log.e("333333333333333", "3333333333333"); break; } } }}
//在Mainactivity中调用的示例
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import com.example.administrator.liutest.R;
import com.example.administrator.liutest.RequstPermissionsUtil;
public class MainActivity extends AppCompatActivity {
//该数组是存放该类中所有用到的权限
private String [] PERMISSIONS = new String[]{
Manifest.permission.CALL_PHONE,
Manifest.permission.READ_PHONE_STATE
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maina);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//权限判断
if (RequstPermissionsUtil.requestPer(MainActivity.this, PERMISSIONS[0],0))
{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123465"));
startActivity(intent);
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
RequstPermissionsUtil.onRequestPermissionsResult(MainActivity.this,PERMISSIONS[requestCode],requestCode,permissions,grantResults);
}
}
如果有错误的地方多多指出,共同学习。QQ:724266839
相关文章推荐
- android 6.0权限请求工具类
- Android 6.0之后,在运行时请求权限,工具类
- 自定义android 6.0请求权限
- [Android 6.0] 程序开发(一)--运行时请求权限
- android在6.0上的权限请求
- Android 6.0 运行时请求权限
- android 实现兼容6.0与5.0动态请求权限
- Android 6.0权限管理,sdk>=23请求权限
- Android 6.0常用权限获取工具类
- Android 6.0系统动态请求系统相机和读取手机存储权限
- Android (6.0) M 请求权限
- android 6.0权限检测和请求
- android 6.0权限请求
- Android 6.0权限管理,sdk>=23请求权限
- Android 6.0(M) 获得权限请求问题
- Android 6.0 动态请求权限
- app在android 6.0或以上平台版本运行过程中请求权限
- Android 6.0运行时权限请求示例
- Android基础_6.0权限请求
- Android 6.0 需要在运行时请求权限