Encode Intent scheme when serializing to URI string

Avoids deserialization error when the scheme contains a
reserved character.

Bug: 261858325

Test: atest android.content.cts.IntentTest#testEncoding

Change-Id: Ic34b3f796b762763db5aa7b5d7c109ae70607470
This commit is contained in:
Winson Chiu
2023-01-06 21:26:24 +00:00
parent 8462ad189b
commit e56ca6b945

View File

@@ -11601,7 +11601,7 @@ public class Intent implements Parcelable, Cloneable {
private void toUriInner(StringBuilder uri, String scheme, String defAction,
String defPackage, int flags) {
if (scheme != null) {
uri.append("scheme=").append(scheme).append(';');
uri.append("scheme=").append(Uri.encode(scheme)).append(';');
}
if (mAction != null && !mAction.equals(defAction)) {
uri.append("action=").append(Uri.encode(mAction)).append(';');