小米6X想要开启小爱同学真心想要,但提示说某个应用遮挡了权限请求界面,怎么解决?

小米6X有小爱同学吗怎么唤醒小爱同学_百度知道
小米6X有小爱同学吗怎么唤醒小爱同学
我有更好的答案
当然有,小米6X有自带的小爱同学,小米6X搭载的处理器是骁龙660AIE处理器,A:骁龙660 AIE版属于此前骁龙660的定制版,主要区别在于AIE版加入了AI功能,是一款人工智能芯片,当然可以用小爱
采纳率:95%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。平板/笔记本
HiLink生态产品
终端云服务专区
提示说由于某个应用遮挡了权限请求界面
&新学乍练&
来自:HUAWEI P10 VTR-AL00
求大神解决 能否给出具体解决流程 百度上的不准确
width:100%">
&花粉帮帮堂&
来自:浏览器
楼主,具体是什么应用?你试试把腾讯手机管家关闭(完全退出,不要留后台),然后看看还有没有这样的提示。腾讯管家的清理加速球和流量监控悬浮窗可能是导致出现问题的原因。
width:100%">
雨后 海边……缤纷芳华高原美最瞬间(1)『走走拍拍』【风光】青岛世纪公园
花粉客户端
Make it Possible
Make your device special
华为云空间
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
关注花粉俱乐部
举报邮箱:
|关注花粉俱乐部:
增值电信业务经营许可证:苏B2-号|
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利UC浏览器不能自动安装,提示某个应用遮挡了权限请求,这是为什么?还有外来的软件下载后都不能点安装,_百度知道
UC浏览器不能自动安装,提示某个应用遮挡了权限请求,这是为什么?还有外来的软件下载后都不能点安装,
UC浏览器不能自动安装,提示某个应用遮挡了权限请求,这是为什么?还有外来的软件下载后都不能点安装,这是为什么??小米5手机(开了设置里面的未知来源),懂的进来看下吧。
我有更好的答案
安装界面截图看看
取消可以点,安装就不能点
点了没反应
其它软件呢?
就是自己从浏览器下载的软件都点不了安装,但是从应用商店下载来的就可以安装。有些软件商店没有的要去浏览器找,然后找到下载了但不能安装,什么软件都不能安装,就点击没反应,很是郁闷
去小米论坛看看,有可能是安卓6.0的不兼容的事,我用的是5.1的,所以不太清楚
从小米官网刚买也就2天
那我采纳你把,比较有帮助我
采纳率:49%
你是不是下了别的浏览器 或者自带浏览器里的设置成默认
怎么设置成uc浏览器为默认浏览器
点取消都行,点安装就没反应
大哥能说中文吗?我真着急
为您推荐:
其他类似问题
uc浏览器的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android6.0动态权限申请步骤以及需要注意的一些坑 - 简书
Android6.0动态权限申请步骤以及需要注意的一些坑
因为工作需要,简单研究了一下Android6.0权限申请,在Google提供的sample的基础上,写了一个简单的demo。算是自己的笔记吧,可能会比较混乱,主要是方便以后查看。后期有别的问题,随时更新~
6.0权限的基本知识,以下是需要单独申请的权限,共分为9组,每组只要有一个权限申请成功了,就默认整组权限都可以使用了。
group:android.permission-group.CONTACTS
permission:android.permission.WRITE_CONTACTS
permission:android.permission.GET_ACCOUNTS
permission:android.permission.READ_CONTACTS
group:android.permission-group.PHONE
permission:android.permission.READ_CALL_LOG
permission:android.permission.READ_PHONE_STATE
permission:android.permission.CALL_PHONE
permission:android.permission.WRITE_CALL_LOG
permission:android.permission.USE_SIP
permission:android.permission.PROCESS_OUTGOING_CALLS
permission:com.android.voicemail.permission.ADD_VOICEMAIL
group:android.permission-group.CALENDAR
permission:android.permission.READ_CALENDAR
permission:android.permission.WRITE_CALENDAR
group:android.permission-group.CAMERA
permission:android.permission.CAMERA
group:android.permission-group.SENSORS
permission:android.permission.BODY_SENSORS
group:android.permission-group.LOCATION
permission:android.permission.ACCESS_FINE_LOCATION
permission:android.permission.ACCESS_COARSE_LOCATION
group:android.permission-group.STORAGE
permission:android.permission.READ_EXTERNAL_STORAGE
permission:android.permission.WRITE_EXTERNAL_STORAGE
group:android.permission-group.MICROPHONE
permission:android.permission.RECORD_AUDIO
group:android.permission-group.SMS
permission:android.permission.READ_SMS
permission:android.permission.RECEIVE_WAP_PUSH
permission:android.permission.RECEIVE_MMS
permission:android.permission.RECEIVE_SMS
permission:android.permission.SEND_SMS
permission:android.permission.READ_CELL_BROADCASTS
以下是普通权限,只需要在AndroidManifest.xml中申请即可。
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_NOTIFICATION_POLICY
android.permission.ACCESS_WIFI_STATE
android.permission.ACCESS_WIMAX_STATE
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.CHANGE_WIMAX_STATE
android.permission.DISABLE_KEYGUARD
android.permission.EXPAND_STATUS_BAR
android.permission.FLASHLIGHT
android.permission.GET_ACCOUNTS
android.permission.GET_PACKAGE_SIZE
android.permission.INTERNET
android.permission.KILL_BACKGROUND_PROCESSES
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.NFC
android.permission.READ_SYNC_SETTINGS
android.permission.READ_SYNC_STATS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REORDER_TASKS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SET_TIME_ZONE
android.permission.SET_WALLPAPER
android.permission.SET_WALLPAPER_HINTS
android.permission.SUBSCRIBED_FEEDS_READ
android.permission.TRANSMIT_IR
android.permission.USE_FINGERPRINT
android.permission.VIBRATE
android.permission.WAKE_LOCK
android.permission.WRITE_SYNC_SETTINGS
com.android.alarm.permission.SET_ALARM
com.android.launcher.permission.INSTALL_SHORTCUT
com.android.launcher.permission.UNINSTALL_SHORTCUT
将targetSdkVersion设置为23,注意,如果你将targetSdkVersion设置为&=23,则必须按照Android谷歌的要求,动态的申请权限,如果你暂时不打算支持动态权限申请,则targetSdkVersion最大只能设置为22.
在AndroidManifest.xml中申请你需要的权限,包括普通权限和需要申请的特殊权限。
3.开始申请权限,此处分为3部。
(1)检查是否由此权限checkSelfPermission(),如果已经开启,则直接做你想做的。
(2)如果未开启,则判断是否需要向用户解释为何申请权限shouldShowRequestPermissionRationale。
(3)如果需要(即返回true),则可以弹出对话框提示用户申请权限原因,用户确认后申请权限requestPermissions(),如果不需要(即返回false),则直接申请权限requestPermissions()。
(这里是一部门代码,底部有比较完善的代码,整个demo可以在github中下载)。
单个权限申请.png
* Requests permission.
* @param activity
* @param requestCode request code, e.g. if you need request CAMERA permission,parameters is PermissionUtils.CODE_CAMERA
public static void requestPermission(final Activity activity, final int requestCode, PermissionGrant permissionGrant) {
if (activity == null) {
Log.i(TAG, "requestPermission requestCode:" + requestCode);
if (requestCode & 0 || requestCode &= requestPermissions.length) {
Log.w(TAG, "requestPermission illegal requestCode:" + requestCode);
final String requestPermission = requestPermissions[requestCode];
//如果是6.0以下的手机,ActivityCompat.checkSelfPermission()会始终等于PERMISSION_GRANTED,
// 但是,如果用户关闭了你申请的权限(如下图,在安装的时候,将一些权限关闭了),ActivityCompat.checkSelfPermission()则可能会导致程序崩溃(java.lang.RuntimeException: Unknown exception code: 1 msg null),
// 你可以使用try{}catch(){},处理异常,也可以判断系统版本,低于23就不申请权限,直接做你想做的。permissionGrant.onPermissionGranted(requestCode);
if (Build.VERSION.SDK_INT & 23) {
permissionGrant.onPermissionGranted(requestCode);
int checkSelfP
checkSelfPermission = ActivityCompat.checkSelfPermission(activity, requestPermission);
} catch (RuntimeException e) {
Toast.makeText(activity, "please open this permission", Toast.LENGTH_SHORT)
Log.e(TAG, "RuntimeException:" + e.getMessage());
if (checkSelfPermission != PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "ActivityCompat.checkSelfPermission != PackageManager.PERMISSION_GRANTED");
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, requestPermission)) {
Log.i(TAG, "requestPermission shouldShowRequestPermissionRationale");
shouldShowRationale(activity, requestCode, requestPermission);
Log.d(TAG, "requestCameraPermission else");
ActivityCompat.requestPermissions(activity, new String[]{requestPermission}, requestCode);
Log.d(TAG, "ActivityCompat.checkSelfPermission ==== PackageManager.PERMISSION_GRANTED");
Toast.makeText(activity, "opened:" + requestPermissions[requestCode], Toast.LENGTH_SHORT).show();
//得到权限的时候,就可以在回调里面做你想做的事情了
permissionGrant.onPermissionGranted(requestCode);
6.0以下系统的应用程序安装界面.png
备注!!!
(1)checkSelfPermission:检查是否拥有这个权限
(2)requestPermissions:请求权限,一般会弹出一个系统对话框,询问用户是否开启这个权限。
(3)shouldShowRequestPermissionRationale:Android原生系统中,如果第二次弹出权限申请的对话框,会出现“以后不再弹出”的提示框,如果用户勾选了,你再申请权限,则shouldShowRequestPermissionRationale返回true,意思是说要给用户一个 解释,告诉用户为什么要这个权限。然而,在实际开发中,需要注意的是,很多手机对原生系统做了修改,比如小米,小米4的6.0的shouldShowRequestPermissionRationale 就一直返回false,而且在申请权限时,如果用户选择了拒绝,则不会再弹出对话框了。。。。 所以说这个地方有坑,我的解决方法是,在回调里面处理,如果用户拒绝了这个权限,则打开本应用信息界面,由用户自己手动开启这个权限。
(4)每个应用都有自己的权限管理界面,里面有本应用申请的权限以及各种状态,即使用户已经同意了你申请的权限,他也随时可以关闭
权限管理界面.png
一次申请多个权限
其实和申请一个权限是一样的,只是requestPermissions(final @NonNull Activity activity,
final @NonNull String[] permissions, final int requestCode),里面的permissions给的参数多些而已。
申请多个权限.png
* 一次申请多个权限
public static void requestMultiPermissions(final Activity activity, PermissionGrant grant) {
final List&String& permissionsList = getNoGrantedPermission(activity, false);
final List&String& shouldRationalePermissionsList = getNoGrantedPermission(activity, true);
//TODO checkSelfPermission
if (permissionsList == null || shouldRationalePermissionsList == null) {
Log.d(TAG, "requestMultiPermissions permissionsList:" + permissionsList.size() + ",shouldRationalePermissionsList:" + shouldRationalePermissionsList.size());
if (permissionsList.size() & 0) {
ActivityCompat.requestPermissions(activity, permissionsList.toArray(new String[permissionsList.size()]),
CODE_MULTI_PERMISSION);
Log.d(TAG, "showMessageOKCancel requestPermissions");
} else if (shouldRationalePermissionsList.size() & 0) {
showMessageOKCancel(activity, "should open those permission",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(activity, shouldRationalePermissionsList.toArray(new String[shouldRationalePermissionsList.size()]),
CODE_MULTI_PERMISSION);
Log.d(TAG, "showMessageOKCancel requestPermissions");
grant.onPermissionGranted(CODE_MULTI_PERMISSION);
关于权限请求结果的回调。Activity实现ActivityCompat.OnRequestPermissionsResultCallback接口,重写onRequestPermissionsResult方法。
public void onRequestPermissionsResult(final int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
PermissionUtils.requestPermissionsResult(this, requestCode, permissions, grantResults, mPermissionGrant);
整个申请权限工具类代码
package com.example.android.system.
import android.M
import android.app.A
import android.content.DialogI
import android.content.I
import android.content.pm.PackageM
import android.net.U
import android.provider.S
import android.support.annotation.NonN
import android.support.v4.app.ActivityC
import android.support.v7.app.AlertD
import android.util.L
import android.widget.T
import java.util.ArrayL
import java.util.HashM
import java.util.L
import java.util.M
* Created by qianxiaoai on .
public class PermissionUtils {
private static final String TAG = PermissionUtils.class.getSimpleName();
public static final int CODE_RECORD_AUDIO = 0;
public static final int CODE_GET_ACCOUNTS = 1;
public static final int CODE_READ_PHONE_STATE = 2;
public static final int CODE_CALL_PHONE = 3;
public static final int CODE_CAMERA = 4;
public static final int CODE_ACCESS_FINE_LOCATION = 5;
public static final int CODE_ACCESS_COARSE_LOCATION = 6;
public static final int CODE_READ_EXTERNAL_STORAGE = 7;
public static final int CODE_WRITE_EXTERNAL_STORAGE = 8;
public static final int CODE_MULTI_PERMISSION = 100;
public static final String PERMISSION_RECORD_AUDIO = Manifest.permission.RECORD_AUDIO;
public static final String PERMISSION_GET_ACCOUNTS = Manifest.permission.GET_ACCOUNTS;
public static final String PERMISSION_READ_PHONE_STATE = Manifest.permission.READ_PHONE_STATE;
public static final String PERMISSION_CALL_PHONE = Manifest.permission.CALL_PHONE;
public static final String PERMISSION_CAMERA = Manifest.permission.CAMERA;
public static final String PERMISSION_ACCESS_FINE_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION;
public static final String PERMISSION_ACCESS_COARSE_LOCATION = Manifest.permission.ACCESS_COARSE_LOCATION;
public static final String PERMISSION_READ_EXTERNAL_STORAGE = Manifest.permission.READ_EXTERNAL_STORAGE;
public static final String PERMISSION_WRITE_EXTERNAL_STORAGE = Manifest.permission.WRITE_EXTERNAL_STORAGE;
private static final String[] requestPermissions = {
PERMISSION_RECORD_AUDIO,
PERMISSION_GET_ACCOUNTS,
PERMISSION_READ_PHONE_STATE,
PERMISSION_CALL_PHONE,
PERMISSION_CAMERA,
PERMISSION_ACCESS_FINE_LOCATION,
PERMISSION_ACCESS_COARSE_LOCATION,
PERMISSION_READ_EXTERNAL_STORAGE,
PERMISSION_WRITE_EXTERNAL_STORAGE
interface PermissionGrant {
void onPermissionGranted(int requestCode);
* Requests permission.
* @param activity
* @param requestCode request code, e.g. if you need request CAMERA permission,parameters is PermissionUtils.CODE_CAMERA
public static void requestPermission(final Activity activity, final int requestCode, PermissionGrant permissionGrant) {
if (activity == null) {
Log.i(TAG, "requestPermission requestCode:" + requestCode);
if (requestCode & 0 || requestCode &= requestPermissions.length) {
Log.w(TAG, "requestPermission illegal requestCode:" + requestCode);
final String requestPermission = requestPermissions[requestCode];
//如果是6.0以下的手机,ActivityCompat.checkSelfPermission()会始终等于PERMISSION_GRANTED,
// 但是,如果用户关闭了你申请的权限,ActivityCompat.checkSelfPermission(),会导致程序崩溃(java.lang.RuntimeException: Unknown exception code: 1 msg null),
// 你可以使用try{}catch(){},处理异常,也可以在这个地方,低于23就什么都不做,
// 个人建议try{}catch(){}单独处理,提示用户开启权限。
if (Build.VERSION.SDK_INT & 23) {
int checkSelfP
checkSelfPermission = ActivityCompat.checkSelfPermission(activity, requestPermission);
} catch (RuntimeException e) {
Toast.makeText(activity, "please open this permission", Toast.LENGTH_SHORT)
Log.e(TAG, "RuntimeException:" + e.getMessage());
if (checkSelfPermission != PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "ActivityCompat.checkSelfPermission != PackageManager.PERMISSION_GRANTED");
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, requestPermission)) {
Log.i(TAG, "requestPermission shouldShowRequestPermissionRationale");
shouldShowRationale(activity, requestCode, requestPermission);
Log.d(TAG, "requestCameraPermission else");
ActivityCompat.requestPermissions(activity, new String[]{requestPermission}, requestCode);
Log.d(TAG, "ActivityCompat.checkSelfPermission ==== PackageManager.PERMISSION_GRANTED");
Toast.makeText(activity, "opened:" + requestPermissions[requestCode], Toast.LENGTH_SHORT).show();
permissionGrant.onPermissionGranted(requestCode);
private static void requestMultiResult(Activity activity, String[] permissions, int[] grantResults, PermissionGrant permissionGrant) {
if (activity == null) {
Log.d(TAG, "onRequestPermissionsResult permissions length:" + permissions.length);
Map&String, Integer& perms = new HashMap&&();
ArrayList&String& notGranted = new ArrayList&&();
for (int i = 0; i & permissions. i++) {
Log.d(TAG, "permissions: [i]:" + i + ", permissions[i]" + permissions[i] + ",grantResults[i]:" + grantResults[i]);
perms.put(permissions[i], grantResults[i]);
if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
notGranted.add(permissions[i]);
if (notGranted.size() == 0) {
Toast.makeText(activity, "all permission success" + notGranted, Toast.LENGTH_SHORT)
permissionGrant.onPermissionGranted(CODE_MULTI_PERMISSION);
openSettingActivity(activity, "those permission need granted!");
* 一次申请多个权限
public static void requestMultiPermissions(final Activity activity, PermissionGrant grant) {
final List&String& permissionsList = getNoGrantedPermission(activity, false);
final List&String& shouldRationalePermissionsList = getNoGrantedPermission(activity, true);
//TODO checkSelfPermission
if (permissionsList == null || shouldRationalePermissionsList == null) {
Log.d(TAG, "requestMultiPermissions permissionsList:" + permissionsList.size() + ",shouldRationalePermissionsList:" + shouldRationalePermissionsList.size());
if (permissionsList.size() & 0) {
ActivityCompat.requestPermissions(activity, permissionsList.toArray(new String[permissionsList.size()]),
CODE_MULTI_PERMISSION);
Log.d(TAG, "showMessageOKCancel requestPermissions");
} else if (shouldRationalePermissionsList.size() & 0) {
showMessageOKCancel(activity, "should open those permission",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(activity, shouldRationalePermissionsList.toArray(new String[shouldRationalePermissionsList.size()]),
CODE_MULTI_PERMISSION);
Log.d(TAG, "showMessageOKCancel requestPermissions");
grant.onPermissionGranted(CODE_MULTI_PERMISSION);
private static void shouldShowRationale(final Activity activity, final int requestCode, final String requestPermission) {
String[] permissionsHint = activity.getResources().getStringArray(R.array.permissions);
showMessageOKCancel(activity, "Rationale: " + permissionsHint[requestCode], new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(activity,
new String[]{requestPermission},
requestCode);
Log.d(TAG, "showMessageOKCancel requestPermissions:" + requestPermission);
private static void showMessageOKCancel(final Activity context, String message, DialogInterface.OnClickListener okListener) {
new AlertDialog.Builder(context)
.setMessage(message)
.setPositiveButton("OK", okListener)
.setNegativeButton("Cancel", null)
* @param activity
* @param requestCode
Need consistent with requestPermission
* @param permissions
* @param grantResults
public static void requestPermissionsResult(final Activity activity, final int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults, PermissionGrant permissionGrant) {
if (activity == null) {
Log.d(TAG, "requestPermissionsResult requestCode:" + requestCode);
if (requestCode == CODE_MULTI_PERMISSION) {
requestMultiResult(activity, permissions, grantResults, permissionGrant);
if (requestCode & 0 || requestCode &= requestPermissions.length) {
Log.w(TAG, "requestPermissionsResult illegal requestCode:" + requestCode);
Toast.makeText(activity, "illegal requestCode:" + requestCode, Toast.LENGTH_SHORT).show();
Log.i(TAG, "onRequestPermissionsResult requestCode:" + requestCode + ",permissions:" + permissions.toString()
+ ",grantResults:" + grantResults.toString() + ",length:" + grantResults.length);
if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "onRequestPermissionsResult PERMISSION_GRANTED");
//TODO success, do something, can use callback
permissionGrant.onPermissionGranted(requestCode);
//TODO hint user this permission function
Log.i(TAG, "onRequestPermissionsResult PERMISSION NOT GRANTED");
String[] permissionsHint = activity.getResources().getStringArray(R.array.permissions);
openSettingActivity(activity,
"Result" + permissionsHint[requestCode]);
private static void openSettingActivity(final Activity activity, String message) {
showMessageOKCancel(activity, message, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Log.d(TAG, "getPackageName(): " + activity.getPackageName());
Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
intent.setData(uri);
activity.startActivity(intent);
* @param activity
* @param isShouldRationale true: return no granted and shouldShowRequestPermissionRationale permissions, false:return no granted and !shouldShowRequestPermissionRationale
public static ArrayList&String& getNoGrantedPermission(Activity activity, boolean isShouldRationale) {
ArrayList&String& permissions = new ArrayList&&();
for (int i = 0; i & requestPermissions. i++) {
String requestPermission = requestPermissions[i];
//TODO checkSelfPermission
int checkSelfPermission = -1;
checkSelfPermission = ActivityCompat.checkSelfPermission(activity, requestPermission);
} catch (RuntimeException e) {
Toast.makeText(activity, "please open those permission", Toast.LENGTH_SHORT)
Log.e(TAG, "RuntimeException:" + e.getMessage());
if (checkSelfPermission != PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "getNoGrantedPermission ActivityCompat.checkSelfPermission != PackageManager.PERMISSION_GRANTED:" + requestPermission);
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, requestPermission)) {
Log.d(TAG, "shouldShowRequestPermissionRationale if");
if (isShouldRationale) {
permissions.add(requestPermission);
if (!isShouldRationale) {
permissions.add(requestPermission);
Log.d(TAG, "shouldShowRequestPermissionRationale else");
界面调用代码
package com.example.android.system.
import android.os.B
import android.support.annotation.NonN
import android.support.v4.app.ActivityC
import android.support.v4.app.FragmentA
import android.support.v4.app.FragmentT
import android.view.V
import android.widget.T
import com.example.android.common.logger.L
* Created by qianxiaoai on .
public class PermissionActivity extends FragmentActivity implements ActivityCompat.OnRequestPermissionsResultCallback{
private static final String TAG = PermissionActivity.class.getSimpleName();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_permission);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
PermissionsFragment fragment = new PermissionsFragment();
transaction.replace(R.id.content_fragment, fragment);
transaction.commit();
* Called when the 'show camera' button is clicked.
* Callback is defined in resource layout definition.
public void showCamera(View view) {
Log.i(TAG, "Show camera button pressed. Checking permission.");
PermissionUtils.requestPermission(this, PermissionUtils.CODE_CAMERA, mPermissionGrant);
public void getAccounts(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_GET_ACCOUNTS, mPermissionGrant);
public void callPhone(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_CALL_PHONE, mPermissionGrant);
public void readPhoneState(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_READ_PHONE_STATE, mPermissionGrant);
public void accessFineLocation(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_ACCESS_FINE_LOCATION, mPermissionGrant);
public void accessCoarseLocation(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_ACCESS_COARSE_LOCATION, mPermissionGrant);
public void readExternalStorage(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_READ_EXTERNAL_STORAGE, mPermissionGrant);
public void writeExternalStorage(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_WRITE_EXTERNAL_STORAGE, mPermissionGrant);
public void recordAudio(View view) {
PermissionUtils.requestPermission(this, PermissionUtils.CODE_RECORD_AUDIO, mPermissionGrant);
private PermissionUtils.PermissionGrant mPermissionGrant = new PermissionUtils.PermissionGrant() {
public void onPermissionGranted(int requestCode) {
switch (requestCode) {
case PermissionUtils.CODE_RECORD_AUDIO:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_RECORD_AUDIO", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_GET_ACCOUNTS:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_GET_ACCOUNTS", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_READ_PHONE_STATE:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_READ_PHONE_STATE", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_CALL_PHONE:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_CALL_PHONE", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_CAMERA:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_CAMERA", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_ACCESS_FINE_LOCATION:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_ACCESS_FINE_LOCATION", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_ACCESS_COARSE_LOCATION:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_ACCESS_COARSE_LOCATION", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_READ_EXTERNAL_STORAGE:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_READ_EXTERNAL_STORAGE", Toast.LENGTH_SHORT).show();
case PermissionUtils.CODE_WRITE_EXTERNAL_STORAGE:
Toast.makeText(PermissionActivity.this, "Result Permission Grant CODE_WRITE_EXTERNAL_STORAGE", Toast.LENGTH_SHORT).show();
* Callback received when a permissions request has been completed.
public void onRequestPermissionsResult(final int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
PermissionUtils.requestPermissionsResult(this, requestCode, permissions, grantResults, mPermissionGrant);
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/horizontal_page_margin"
android:paddingRight="@dimen/horizontal_page_margin"
android:paddingTop="@dimen/vertical_page_margin"
android:paddingBottom="@dimen/vertical_page_margin"
android:orientation="vertical"
&FrameLayout
android:id="@+id/content_fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/&
&ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Camera"
android:id="@+id/button_camera"
android:onClick="showCamera"/&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RECORD_AUDIO"
android:onClick="recordAudio"/&
&/LinearLayout&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="GET_ACCOUNTS"
android:onClick="getAccounts"/&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CALL_PHONE"
android:onClick="callPhone"/&
&/LinearLayout&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PERMISSION_READ_PHONE_STATE"
android:onClick="readPhoneState"/&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ACCESS_FINE_LOCATION"
android:onClick="accessFineLocation"/&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ACCESS_COARSE_LOCATION"
android:onClick="accessCoarseLocation"/&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="READ_EXTERNAL_STORAGE"
android:onClick="readExternalStorage"/&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WRITE_EXTERNAL_STORAGE"
android:onClick="writeExternalStorage"/&
&/LinearLayout&
&/ScrollView&
&/LinearLayout&
清单文件申请的权限
&uses-permission android:name="android.permission.CAMERA"/&
&uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/&
&uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&
&uses-permission android:name="android.permission.CALL_PHONE"/&
&uses-permission android:name="android.permission.SEND_SMS"/&
&uses-permission android:name="android.permission.READ_SMS"/&
&uses-permission android:name="android.permission.GET_ACCOUNTS"/&
&uses-permission android:name="android.permission.READ_PHONE_STATE"/&
&uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&
&uses-permission android:name="android.permission.RECORD_AUDIO"/&
部分 资源文件
&?xml version="1.0" encoding="utf-8"?&
&resources&
&string-array name="permissions"&
&item&@string/permission_recode_audio_hint&/item&
&item&@string/permission_get_accounts_hint&/item&
&item&@string/permission_read_phone_hint&/item&
&item&@string/permission_call_phone_hint&/item&
&item&@string/permission_camera_hint&/item&
&item&@string/permission_access_fine_location_hint&/item&
&item&@string/permission_access_coarse_location_hint&/item&
&item&@string/permission_read_external_hint&/item&
&item&@string/permission_white_external_hint&/item&
&/string-array&
&/resources&
&string name="permission_get_accounts_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_GET_ACCOUNTS&/string&
&string name="permission_read_phone_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_READ_PHONE_STATE&/string&
&string name="permission_call_phone_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_CALL_PHONE&/string&
&string name="permission_camera_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_CAMERA&/string&
&string name="permission_access_fine_location_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_ACCESS_FINE_LOCATION&/string&
&string name="permission_access_coarse_location_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_ACCESS_COARSE_LOCATION&/string&
&string name="permission_read_external_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_READ_EXTERNAL_STORAGE&/string&
&string name="permission_white_external_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_WRITE_EXTERNAL_STORAGE&/string&
&string name="permission_recode_audio_hint"&没有此权限,无法开启这个功能,请开启权限。PERMISSION_RECORD_AUDIO&/string&
认真的生活,开心的编程。
我的博客: http://lovexiaoai.cn/
那些要动态权限(这么记比较危险的权限,获取硬件和用户信息权限) 不过现在as 中会主动提示加动态权限 calendar 时间(日历) camera 相机 contacts 联系人(读,写,获取通讯录) location (获取定位) microphone (麦克风即话筒) ...
发热放入Android6.0带来了新的权限管理方式,根据提供的官方文档,再加上自己的理解,做了以下汇总仅供大家伙参考,不好勿喷。 一个新建的Android应用默认是没有权限的,这意味着它不能执行任何可能对用户体验有不利影响的操作或者访问设备数据。为了使用受保护的功能,你必须...
android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行...
参考: Android Training之权限管理 Android 6.0 RuntimePermission---吴小龙的博客 Android6.0权限 一. 权限说明: 1. 权限种类: Android中权限分为正常权限(即,不会对用户隐私或设备操作造成很大风险的权限)...
参考资源:http://blog.csdn.net/lmj/article/details/.0以下的权限及在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装 6.0以上的权限,分为Normal Perm...
亲爱的孩子: 转瞬你就快12岁小学毕业了,时间流逝得真是太快了一些。在内心的某个部分,我们还固执地停留在陪伴你的那些亲密温软中,琐碎又甜蜜。我们很清晰地知道,即使某日耄耋年衰,这满满流淌着爱的时光将滋润我们的皱纹,照亮我们的灵魂。所以,真的要谢谢你呢!有了你,我们的生命之河...
前言 最近一直有人问我一个问题:你为什么要加入头马? 实话说,我也一直在思考,直到现在,我觉得我思考完了,下面我将向你们分享我所思考的结果。 故事 小时候的我是一个比较害羞的孩子,不习惯见陌生人,哪怕是去到亲戚家也是一样。每次与父母一块外出遇到陌生人时,我都会紧紧抓住父母的...
"好雨知时节,当春乃发生。"我不知道这是谁的诗句,但我很喜欢,我喜欢秋天的雨,湿漉漉的,似乎有些悲戚,但秋天的雨总是温柔的,这种感觉,就像西湖上的舟那样安静,"水光潋滟晴方好,山色空蒙雨亦奇。"这好像是苏轼描写的西湖。雨天的西湖,轻柔的雨水像朦胧的少女一样飘渺。
01 前几天看到这样一则新闻。 郑州62岁老人为成全女儿幸福 ,老父亲谎称打工去流浪。镜头里,老人住在一片荒地上搭的破帐篷里,吃的是饭店剩菜。 老人独自抚养女儿长大出嫁,跟女儿住了几天,公公婆婆却为此闹气。为了不给女儿添麻烦,他谎称外出打工,实际却是流浪拾荒。 看着很心酸,...
我指着身上的衣服对老公说:“这件衣服最少穿5年了。” 老公一点儿也不傻。马上说:“买啊,自己喜欢什么就买什么。” “有钱吗?有钱谁不想穿新衣服啊。” “不至于穷到买件衣服的钱都没有了吧?” “买了衣服就要喝西北风了。” 嘿嘿,我还真不是哭穷。房子装修加上做代理交的压金。流动...

我要回帖

更多关于 小米mix2s小爱同学 的文章

 

随机推荐