diff --git a/.changeset/forty-years-rule.md b/.changeset/forty-years-rule.md new file mode 100644 index 00000000..e1349179 --- /dev/null +++ b/.changeset/forty-years-rule.md @@ -0,0 +1,5 @@ +--- +"@yume-chan/android-bin": minor +--- + +Add `PackageManager.prototype.getPackages` method to get apk paths diff --git a/libraries/android-bin/src/pm.ts b/libraries/android-bin/src/pm.ts index 229ddddb..12b2e17f 100644 --- a/libraries/android-bin/src/pm.ts +++ b/libraries/android-bin/src/pm.ts @@ -475,6 +475,22 @@ export class PackageManager extends AdbCommandBase { } } + async getPackages(packageName: string): Promise { + const args = ["pm", "-p", packageName]; + + const process = await this.#cmdOrSubprocess(args); + const result: string[] = []; + for await (const line of process.stdout + .pipeThrough(new TextDecoderStream()) + .pipeThrough(new SplitStringStream("\n"))) { + if (line.startsWith("package:")) { + result.push(line.substring("package:".length)); + } + } + + return result; + } + async uninstall( packageName: string, options?: Partial,