[androiddebugbridge] fix start-intent channel (#12791)

Signed-off-by: Miguel Álvarez Díez <miguelwork92@gmail.com>
This commit is contained in:
GiviMAD 2022-05-23 18:33:56 +02:00 committed by GitHub
parent c16e9df7a0
commit 6a6cf3e515
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 9 deletions

View File

@ -36,6 +36,7 @@ import java.util.concurrent.TimeoutException;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jdt.annotation.Nullable;
@ -416,7 +417,7 @@ public class AndroidDebugBridgeDevice {
Map<String, Float> extraFloats = new HashMap<>(); Map<String, Float> extraFloats = new HashMap<>();
Map<String, Long> extraLongs = new HashMap<>(); Map<String, Long> extraLongs = new HashMap<>();
Map<String, URI> extraUris = new HashMap<>(); Map<String, URI> extraUris = new HashMap<>();
for (var i = 1; i < commandParts.length - 1; i++) { for (var i = 1; i < commandParts.length; i++) {
var commandPart = commandParts[i]; var commandPart = commandParts[i];
var endToken = commandPart.indexOf(">"); var endToken = commandPart.indexOf(">");
var argName = commandPart.substring(0, endToken + 1); var argName = commandPart.substring(0, endToken + 1);
@ -596,7 +597,7 @@ public class AndroidDebugBridgeDevice {
} }
} }
StringBuilder adbCommandBuilder = new StringBuilder("am start " + targetPackage); StringBuilder adbCommandBuilder = new StringBuilder("am start -n " + targetPackage);
if (action != null) { if (action != null) {
adbCommandBuilder.append(" -a ").append(action); adbCommandBuilder.append(" -a ").append(action);
} }
@ -617,23 +618,28 @@ public class AndroidDebugBridgeDevice {
} }
if (!extraStrings.isEmpty()) { if (!extraStrings.isEmpty()) {
adbCommandBuilder.append(extraStrings.entrySet().stream() adbCommandBuilder.append(extraStrings.entrySet().stream()
.map(entry -> " --es \"" + entry.getKey() + "\" \"" + entry.getValue() + "\"")); .map(entry -> " --es \"" + entry.getKey() + "\" \"" + entry.getValue() + "\"")
.collect(Collectors.joining(" ")));
} }
if (!extraBooleans.isEmpty()) { if (!extraBooleans.isEmpty()) {
adbCommandBuilder.append(extraBooleans.entrySet().stream() adbCommandBuilder.append(extraBooleans.entrySet().stream()
.map(entry -> " --ez \"" + entry.getKey() + "\" " + entry.getValue())); .map(entry -> " --ez \"" + entry.getKey() + "\" " + entry.getValue())
.collect(Collectors.joining(" ")));
} }
if (!extraIntegers.isEmpty()) { if (!extraIntegers.isEmpty()) {
adbCommandBuilder.append(extraIntegers.entrySet().stream() adbCommandBuilder.append(extraIntegers.entrySet().stream()
.map(entry -> " --ei \"" + entry.getKey() + "\" " + entry.getValue())); .map(entry -> " --ei \"" + entry.getKey() + "\" " + entry.getValue())
.collect(Collectors.joining(" ")));
} }
if (!extraFloats.isEmpty()) { if (!extraFloats.isEmpty()) {
adbCommandBuilder.append(extraFloats.entrySet().stream() adbCommandBuilder.append(
.map(entry -> " --ef \"" + entry.getKey() + "\" " + entry.getValue())); extraFloats.entrySet().stream().map(entry -> " --ef \"" + entry.getKey() + "\" " + entry.getValue())
.collect(Collectors.joining(" ")));
} }
if (!extraLongs.isEmpty()) { if (!extraLongs.isEmpty()) {
adbCommandBuilder.append(extraLongs.entrySet().stream() adbCommandBuilder.append(
.map(entry -> " --el \"" + entry.getKey() + "\" " + entry.getValue())); extraLongs.entrySet().stream().map(entry -> " --el \"" + entry.getKey() + "\" " + entry.getValue())
.collect(Collectors.joining(" ")));
} }
runAdbShell(adbCommandBuilder.toString()); runAdbShell(adbCommandBuilder.toString());
} }