-
@param customPermissionArray 自定义权限数组
-
@return true已获取自定义权限,false未获取自定义权限
*/
public boolean checkCustomPermission(Context context, String[] customPermissionArray) {
mCustomPermissionArray = customPermissionArray;
if (mCustomPermissionArray == null || mCustomPermissionArray.length == 0) {
return false;
}
isCustomPermissionOk = true;
mPermissionList.clear();
for (int i = 0; i < mCustomPermissionArray.length; i++) {
if (ContextCompat.checkSelfPermission(context, mCustomPermissionArray[i]) != PackageManager.PERMISSION_GRANTED) {
mPermissionList.add(mCustomPermissionArray[i]);
isCustomPermissionOk = false;
}
}
return isCustomPermissionOk;
}
/**
-
获取自定义权限
-
@param customPermissionArray 自定义权限数组
*/
public void getCustomPermission(Activity activity, String[] customPermissionArray) {
checkCustomPermission(activity, customPermissionArray);
if (mPermissionList.isEmpty()) {
//未授予的权限为空,表示都授予了
} else {
//请求权限方法
String[] permissions = mPermissionList.toArray(new String[mPermissionList.size()]);//将List转为数组
ActivityCompat.requestPermissions(activity, permissions, REQUEST_CODE_CUSTOM);
}
}
/**
-
获取自定义权限
-
@param customPermissionArray 自定义权限数组
*/
public void getCustomPermission(Fragment fragment, String[] customPermissionArray) {
checkCustomPermission(fragment.getContext(), customPermissionArray);
if (mPermissionList.isEmpty()) {
//未授予的权限为空,表示都授予了
} else {
//请求权限方法
String[] permissions = mPermissionList.toArray(new String[mPermissionList.size()]);//将List转为数组
fragment.requestPermissions(permissions, REQUEST_CODE_CUSTOM);
}
}
/**
-
检查日历权限
-
@return true已获取日历权限,false未获取日历权限
*/
public boolean checkCalendarPermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_CALENDAR);
if (permission != PackageManager.PERMISSION_GRANTED) {
isCalendarPermissionOk = false;
} else {
isCalendarPermissionOk = true;
}
return isCalendarPermissionOk;
}
/**
- 获取日历权限-拒绝权限后仍然弹出权限窗
*/
public void getCalendarPermission1(Activity activity) {
if (!checkCalendarPermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_CALENDAR}, REQUEST_CODE_CALENDAR);
}
}
/**
- 获取日历权限-拒绝权限后仍然弹出权限窗
*/
public void getCalendarPermission1(Fragment fragment) {
if (!checkCalendarPermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_CALENDAR}, REQUEST_CODE_CALENDAR);
}
}
/**
-
获取日历权限-拒绝权限后不再弹出权限窗
-
shouldShowRequestPermissionRationale方法,如果用户已经拒绝过则返回true,即不再弹出权限窗
*/
public void getCalendarPermission2(Activity activity) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_CALENDAR)) {
// Show an expanation to the user asynchronously – don’t block
// this thread waiting for the user’s response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_CALENDAR}, REQUEST_CODE_CALENDAR);
// MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
// app-defined int constant. The callback method gets the
// result of the request.
}
}
/**
-
获取日历权限-拒绝权限后不再弹出权限窗
-
shouldShowRequestPermissionRationale方法,如果用户已经拒绝过则返回true,即不再弹出权限窗
*/
public void getCalendarPermission2(Fragment fragment) {
// Should we show an explanation?
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_CALENDAR)) {
// Show an expanation to the user asynchronously – don’t block
// this thread waiting for the user’s response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
fragment.requestPermissions(new String[]{PERMISSION_CALENDAR}, REQUEST_CODE_CALENDAR);
// MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
// app-defined int constant. The callback method gets the
// result of the request.
}
}
/**
-
检查摄像头权限
-
@return true已获取摄像头权限,false未获取摄像头权限
*/
public boolean checkCameraPermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_CAMERA);
if (permission != PackageManager.PERMISSION_GRANTED) {
isCameraPermissionOk = false;
} else {
isCameraPermissionOk = true;
}
return isCameraPermissionOk;
}
/**
- 获取摄像头权限-拒绝权限后仍然弹出权限窗
*/
public void getCameraPermission1(Activity activity) {
if (!checkCameraPermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_CAMERA}, REQUEST_CODE_CAMERA);
}
}
/**
- 获取摄像头权限-拒绝权限后仍然弹出权限窗
*/
public void getCameraPermission1(Fragment fragment) {
if (!checkCameraPermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_CAMERA}, REQUEST_CODE_CAMERA);
}
}
/**
- 获取摄像头权限-拒绝权限后不再弹出权限窗
*/
public void getCameraPermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_CAMERA)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_CAMERA}, REQUEST_CODE_CAMERA);
}
}
/**
- 获取摄像头权限-拒绝权限后不再弹出权限窗
*/
public void getCameraPermission2(Fragment fragment) {
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_CAMERA)) {
} else {
fragment.requestPermissions(new String[]{PERMISSION_CAMERA}, REQUEST_CODE_CAMERA);
}
}
/**
-
检查联系人权限
-
@return true已获取联系人权限,false未获取联系人权限
*/
public boolean checkContactsPermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_CONTACTS);
if (permission != PackageManager.PERMISSION_GRANTED) {
isContactsPermissionOk = false;
} else {
isContactsPermissionOk = true;
}
return isContactsPermissionOk;
}
/**
- 获取联系人权限-拒绝权限后仍然弹出权限窗
*/
public void getContactsPermission1(Activity activity) {
if (!checkContactsPermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_CONTACTS}, REQUEST_CODE_CONTACTS);
}
}
/**
- 获取联系人权限-拒绝权限后仍然弹出权限窗
*/
public void getContactsPermission1(Fragment fragment) {
if (!checkContactsPermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_CONTACTS}, REQUEST_CODE_CONTACTS);
}
}
/**
- 获取联系人权限-拒绝权限后不再弹出权限窗
*/
public void getContactsPermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_CONTACTS)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_CONTACTS}, REQUEST_CODE_CONTACTS);
}
}
/**
- 获取联系人权限-拒绝权限后不再弹出权限窗
*/
public void getContactsPermission2(Fragment fragment) {
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_CONTACTS)) {
} else {
fragment.requestPermissions(new String[]{PERMISSION_CONTACTS}, REQUEST_CODE_CONTACTS);
}
}
/**
-
检查定位权限
-
@return true已获取定位权限,false未获取定位权限
*/
public boolean checkLocationPermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_LOCATION);
if (permission != PackageManager.PERMISSION_GRANTED) {
isLocationPermissionOk = false;
} else {
isLocationPermissionOk = true;
}
return isLocationPermissionOk;
}
/**
- 获取定位权限-拒绝权限后仍然弹出权限窗
*/
public void getLocationPermission1(Activity activity) {
if (!checkLocationPermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_LOCATION}, REQUEST_CODE_LOCATION);
}
}
/**
- 获取定位权限-拒绝权限后仍然弹出权限窗
*/
public void getLocationPermission1(Fragment fragment) {
if (!checkLocationPermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_LOCATION}, REQUEST_CODE_LOCATION);
}
}
/**
- 获取定位权限-拒绝权限后不再弹出权限窗
*/
public void getLocationPermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_LOCATION)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_LOCATION}, REQUEST_CODE_LOCATION);
}
}
/**
- 获取定位权限-拒绝权限后不再弹出权限窗
*/
public void getLocationPermission2(Fragment fragment) {
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_LOCATION)) {
} else {
fragment.requestPermissions(new String[]{PERMISSION_LOCATION}, REQUEST_CODE_LOCATION);
}
}
/**
-
检查麦克风权限
-
@return true已获取麦克风权限,false未获取麦克风权限
*/
public boolean checkMicrophonePermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_MICROPHONE);
if (permission != PackageManager.PERMISSION_GRANTED) {
isMicrophonePermissionOk = false;
} else {
isMicrophonePermissionOk = true;
}
return isMicrophonePermissionOk;
}
/**
- 获取麦克风权限-拒绝权限后仍然弹出权限窗
*/
public void getMicrophonePermission1(Activity activity) {
if (!checkMicrophonePermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_MICROPHONE}, REQUEST_CODE_MICROPHONE);
}
}
/**
- 获取麦克风权限-拒绝权限后仍然弹出权限窗
*/
public void getMicrophonePermission1(Fragment fragment) {
if (!checkMicrophonePermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_MICROPHONE}, REQUEST_CODE_MICROPHONE);
}
}
/**
- 获取麦克风权限-拒绝权限后不再弹出权限窗
*/
public void getMicrophonePermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_MICROPHONE)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_MICROPHONE}, REQUEST_CODE_MICROPHONE);
}
}
/**
- 获取麦克风权限-拒绝权限后不再弹出权限窗
*/
public void getMicrophonePermission2(Fragment fragment) {
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_MICROPHONE)) {
} else {
fragment.requestPermissions(new String[]{PERMISSION_MICROPHONE}, REQUEST_CODE_MICROPHONE);
}
}
/**
-
检查手机状态权限
-
@return true已获取手机状态权限,false未获取手机状态权限
*/
public boolean checkPhonePermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_PHONE);
if (permission != PackageManager.PERMISSION_GRANTED) {
isPhonePermissionOk = false;
} else {
isPhonePermissionOk = true;
}
return isPhonePermissionOk;
}
/**
- 获取手机状态权限-拒绝权限后仍然弹出权限窗
*/
public void getPhonePermission1(Activity activity) {
if (!checkPhonePermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_PHONE}, REQUEST_CODE_PHONE);
}
}
/**
- 获取手机状态权限-拒绝权限后仍然弹出权限窗
*/
public void getPhonePermission1(Fragment fragment) {
if (!checkPhonePermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_PHONE}, REQUEST_CODE_PHONE);
}
}
/**
- 获取手机状态权限-拒绝权限后不再弹出权限窗
*/
public void getPhonePermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_PHONE)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_PHONE}, REQUEST_CODE_PHONE);
}
}
/**
- 获取手机状态权限-拒绝权限后不再弹出权限窗
*/
public void getPhonePermission2(Fragment fragment) {
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_PHONE)) {
} else {
fragment.requestPermissions(new String[]{PERMISSION_PHONE}, REQUEST_CODE_PHONE);
}
}
/**
-
检查传感器权限
-
@return true已获取传感器权限,false未获取传感器权限
*/
public boolean checkSensorsPermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_SENSORS);
if (permission != PackageManager.PERMISSION_GRANTED) {
isSensorsPermissionOk = false;
} else {
isSensorsPermissionOk = true;
}
return isSensorsPermissionOk;
}
/**
- 获取传感器权限-拒绝权限后仍然弹出权限窗
*/
public void getSensorsPermission1(Activity activity) {
if (!checkSensorsPermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_SENSORS}, REQUEST_CODE_SENSORS);
}
}
/**
- 获取传感器权限-拒绝权限后仍然弹出权限窗
*/
public void getSensorsPermission1(Fragment fragment) {
if (!checkSensorsPermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_SENSORS}, REQUEST_CODE_SENSORS);
}
}
/**
- 获取传感器权限-拒绝权限后不再弹出权限窗
*/
public void getSensorsPermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_SENSORS)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_SENSORS}, REQUEST_CODE_SENSORS);
}
}
/**
- 获取传感器权限-拒绝权限后不再弹出权限窗
*/
public void getSensorsPermission2(Fragment fragment) {
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_SENSORS)) {
} else {
fragment.requestPermissions(new String[]{PERMISSION_SENSORS}, REQUEST_CODE_SENSORS);
}
}
/**
-
检查短信权限
-
@return true已获取短信权限,false未获取短信权限
*/
public boolean checkSmsPermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_SMS);
if (permission != PackageManager.PERMISSION_GRANTED) {
isSmsPermissionOk = false;
} else {
isSmsPermissionOk = true;
}
return isSmsPermissionOk;
}
/**
- 获取短信权限-拒绝权限后仍然弹出权限窗
*/
public void getSmsPermission1(Activity activity) {
if (!checkSmsPermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_SMS}, REQUEST_CODE_SMS);
}
}
/**
- 获取短信权限-拒绝权限后仍然弹出权限窗
*/
public void getSmsPermission1(Fragment fragment) {
if (!checkSmsPermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_SMS}, REQUEST_CODE_SMS);
}
}
/**
- 获取短信权限-拒绝权限后不再弹出权限窗
*/
public void getSmsPermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_SMS)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_SMS}, REQUEST_CODE_SMS);
}
}
/**
- 获取短信权限-拒绝权限后不再弹出权限窗
*/
public void getSmsPermission2(Fragment fragment) {
if (fragment.shouldShowRequestPermissionRationale(PERMISSION_SMS)) {
} else {
fragment.requestPermissions(new String[]{PERMISSION_SMS}, REQUEST_CODE_SMS);
}
}
/**
-
检查存储权限
-
@return true已获取存储权限,false未获取存储权限
*/
public boolean checkStoragePermission(Context context) {
int permission = ContextCompat.checkSelfPermission(context, PERMISSION_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
isStoragePermissionOk = false;
} else {
isStoragePermissionOk = true;
}
return isStoragePermissionOk;
}
/**
- 获取存储权限-拒绝权限后仍然弹出权限窗
*/
public void getStoragePermission1(Activity activity) {
if (!checkStoragePermission(activity)) {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_STORAGE}, REQUEST_CODE_STORAGE);
}
}
/**
- 获取存储权限-拒绝权限后仍然弹出权限窗
*/
public void getStoragePermission1(Fragment fragment) {
if (!checkStoragePermission(fragment.getContext())) {
fragment.requestPermissions(new String[]{PERMISSION_STORAGE}, REQUEST_CODE_STORAGE);
}
}
/**
- 获取存储权限-拒绝权限后不再弹出权限窗
*/
public void getStoragePermission2(Activity activity) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, PERMISSION_STORAGE)) {
} else {
ActivityCompat.requestPermissions(activity, new String[]{PERMISSION_STORAGE}, REQUEST_CODE_STORAGE);
}
}
/**
- 获取存储权限-拒绝权限后不再弹出权限窗
*/
public void getStoragePermission2(Fragment fragment) {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后
总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。
在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-4kqQX4wv-1713709721588)]
[外链图片转存中…(img-N3yKwuKQ-1713709721590)]
[外链图片转存中…(img-iFYUoGkP-1713709721591)]
[外链图片转存中…(img-8tT3fSXO-1713709721591)]
[外链图片转存中…(img-fG6HsZOX-1713709721592)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
[外链图片转存中…(img-7UDYvFoY-1713709721593)]
最后
总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。
在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
[外链图片转存中…(img-SPkJuO7T-1713709721593)]
[外链图片转存中…(img-guqNba4c-1713709721594)]
[外链图片转存中…(img-8PHWmNrA-1713709721595)]
还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!