BUG contextuel
Lorsque l'application utilise requestPermissions pour demander des autorisations, le système affiche une fenêtre de sélection pour autoriser ou refuser.
Dans cette fenêtre, il y a une boîte de sélection "Ne plus demander", des boutons "Refuser" et "Autoriser".
Si vous avez rencontré un bug, cliquez sur "Ne plus demander", le bouton "Autoriser" sera grisé et désactivé.
position
Localisez d'abord où se trouve le code, recherchez d'abord les packages/apps/PackageInstaller/res/values-zh-rCN/strings.xml:108 anglais correspondants : "Ne demandez plus" via le texte "Ne demandez plus "
Recherchez ./packages/apps/PackageInstaller/res/layout/grant_permissions.xml par ce "never_ask_again"
: android:text="@string/never_ask_again"
<!-- desc_container用于显示请求权限程序的图标perm_desc_root,及请求的权限permission_message -->
<FrameLayout
android:id="@+id/desc_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="18dip"
android:paddingStart="20dip"
android:paddingEnd="16dip">
<include
layout="@layout/permission_description" />
</FrameLayout>
<!-- do_not_ask_checkbox就是 不再询问的选择框 -->
<CheckBox
android:id="@+id/do_not_ask_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="-12dp"
android:minHeight="48dp"
android:text="@string/never_ask_again"
android:textColor="?android:attr/textColorPrimary"
style="?android:attr/textAppearanceSmall"
android:visibility="gone">
</CheckBox>
Localisez le code source dans le fichier packages/apps/PackageInstaller.
GrantPermissionsActivity est une fenêtre contextuelle pour l'attribution des autorisations. GrantPermissionsDefaultViewHandler est utilisé pour contrôler la vue de l'interface utilisateur de GrantPermissionsActivity. Les événements de clic de bouton sont gérés via l'interface GrantPermissionsViewHandler.ResultListener, qui est implémentée par GrantPermissionsActivity
public class GrantPermissionsActivity extends OverlayTouchActivity
implements GrantPermissionsViewHandler.ResultListener {
mViewHandler = new com.android.packageinstaller.permission.ui.handheld
.GrantPermissionsViewHandlerImpl(this, getCallingPackage())
.setResultListener(this);
}
Modifier BOGUE
Modifier le code sous packages
diff --git a/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java b/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java
index a372e2c5..41c65b89 100644
--- a/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java
+++ b/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java
@@ -342,7 +342,8 @@ public class GrantPermissionsViewHandlerImpl implements GrantPermissionsViewHand
if (mResultListener != null) {
view.performAccessibilityAction(
AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS, null);
- mResultListener.onPermissionGrantResult(mGroupName, true, false);
+ mResultListener.onPermissionGrantResult(mGroupName, true,
+ mShowDonNotAsk && mDoNotAskCheckbox.isChecked());
}
break;
case R.id.permission_deny_button:
@@ -361,7 +362,7 @@ public class GrantPermissionsViewHandlerImpl implements GrantPermissionsViewHand
mActivity.startActivity(intent);
break;
case R.id.do_not_ask_checkbox:
- mAllowButton.setEnabled(!mDoNotAskCheckbox.isChecked());
+ //mAllowButton.setEnabled(!mDoNotAskCheckbox.isChecked());
break;
}
}
Auteur : Trop beau pour sortir et refuser de réimprimer