diff --git a/src/android/help.ts b/src/android/help.ts index d8a7e5a..e9d4c62 100644 --- a/src/android/help.ts +++ b/src/android/help.ts @@ -28,6 +28,8 @@ const help = ` --target ........... Use a specific target --connect ............... Tie process to app process --forward ... Forward a port from device to host + --timeout ..... ADB timeout in miliseconds + Default is 5000 `; export async function run(args: readonly string[]): Promise { diff --git a/src/android/run.ts b/src/android/run.ts index 475aa3e..7223587 100644 --- a/src/android/run.ts +++ b/src/android/run.ts @@ -36,6 +36,7 @@ export async function run(args: readonly string[]): Promise { const sdk = await getSDK(); const apkPath = getOptionValue(args, '--app'); const forwardedPorts = getOptionValues(args, '--forward'); + const timeout = Number.parseFloat(getOptionValue(args, '--timeout', '5000')); const ports: Ports[] = []; @@ -74,7 +75,7 @@ export async function run(args: readonly string[]): Promise { await installApkToDevice(sdk, device, apkPath, appId); log(`Starting application activity ${appId}/${activityName}...\n`); - await startActivity(sdk, device, appId, activityName); + await startActivity(sdk, device, appId, activityName, timeout); log(`Run Successful\n`); diff --git a/src/android/utils/adb.ts b/src/android/utils/adb.ts index 3d0a81f..57b5ad5 100644 --- a/src/android/utils/adb.ts +++ b/src/android/utils/adb.ts @@ -269,12 +269,13 @@ export async function startActivity( device: Device, packageName: string, activityName: string, + timeout: number, ): Promise { const debug = Debug(`${modulePrefix}:${startActivity.name}`); const args = ['-s', device.serial, 'shell', 'am', 'start', '-W', '-n', `${packageName}/${activityName}`]; debug('Invoking adb with args: %O', args); - await execAdb(sdk, args, { timeout: 5000 }); + await execAdb(sdk, args, { timeout: timeout }); } export function parseAdbDevices(output: string): Device[] {