RK3326-Android10.0\packages\apps\PermissionController\src\com\android\packageinstaller\permission\ui\handheld\GrantPermissionsViewHandlerImpl
// 添加如下代码即可
@Override
public void updateUi(String groupName, int groupCount, int groupIndex, Icon icon,
CharSequence message, CharSequence detailMessage, CharSequence[] buttonLabels) {
boolean isNewGroup = mGroupIndex != groupIndex;
mGroupName = groupName;
mGroupCount = groupCount;
mGroupIndex = groupIndex;
mGroupIcon = icon;
mGroupMessage = message;
mDetailMessage = detailMessage;
mButtonLabels = buttonLabels;
// If this is a second (or later) permission and the views exist, then animate.
if (mIconView != null) {
updateAll();
}
}
private void updateAll() {
updateDescription();
updateDetailDescription();
updateButtons();
// Animate change in size
// Grow or shrink the content container to size of new content
ChangeBounds growShrinkToNewContentSize = new ChangeBounds();
growShrinkToNewContentSize.setDuration(ANIMATION_DURATION_MILLIS);
growShrinkToNewContentSize.setInterpolator(AnimationUtils.loadInterpolator(mActivity,
android.R.interpolator.fast_out_slow_in));
TransitionManager.beginDelayedTransition(mRootView, growShrinkToNewContentSize);
// 添加如下代码即可
new android.os.Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (mResultListener != null) {
Log.e("denganzhi","click--------next 21111111 000000");
mRootView.performAccessibilityAction(
AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS, null);
mResultListener.onPermissionGrantResult(mGroupName, GRANTED_ALWAYS);
}
}
},3000);
// 添加如下代码即可
}
RK3326-Android10.0\packages\apps\PermissionController\src\com\android\packageinstaller\permission\ui\GrantPermissionsActivity 实现 原理
public class GrantPermissionsActivity extends Activity {
public void onCreate(Bundle icicle) {
Log.e(Tag,"allPermission:"+ java.util.Arrays.toString(mRequestedPermissions));
// allPermission:[android.permission.WRITE_EXTERNAL_STORAGE, android.permission.CALL_PHONE]
↓
if (!showNextPermissionGroupGrantRequest()) { // 弹出对话框请求权限
setResultAndFinish();
}
}
showNextPermissionGroupGrantRequest(){
mViewHandler.updateUi() // 显示对话框
}
public void onPermissionGrantResult(){ //点击确定取消以后回调
if (!showNextPermissionGroupGrantRequest()) { // 继续下一个权限
setResultAndFinish(); // 申请权限结束,关闭对话框
}
}
}