見出し画像

【Android】パッケージ名のみでアプリケーションを起動する【UWSC】

動作環境情報

OS :Windows10
アプリ:Nox Player 6.3.0.0
ツール:UWSC Ver 5.1.1

Nox Player:https://jp.bignox.com/

やりたいこと

Androidを操作せずOS側からADBコマンドにてソース上で指定したアプリケーションを起動する。

前回:https://note.com/diggy2/n/nc7cdc67ba661

画像1

前回任意のアプリケーションを起動するソースコードを用意したが、何度も起動を検証する場合一々プルダウンから選択する必要があり、非常に煩わしい。
コードを改良し、パッケージ名をソースコードに埋め込んでいる場合、選択の必要なくアプリケーションが起動されるようにした。

//検索文字列 android.intent.action.MAIN:
//NoxPlayerのインストール位置(標準インストールであれば変更の必要なし)
Nox = "C:\Program Files (x86)\Nox\bin"

//パッケージ名を指定する(空欄可)
package = "" //←ここを任意入力する!!

ARY = ""
check = false

//直接変数に代入するとおかしくなるためtxtに出力 -- ①
DOSCMD(COPY(Nox,1,2) + " & cd " + Nox + " & nox_adb shell pm list package > " + GET_CUR_DIR + "\List.txt")
//出力txtからパッケージの一覧を作成する
RD = FOPEN(GET_CUR_DIR + "\List.txt",F_READ)
 For i = 1 To FGET(RD,-1)
  if !(FGET(RD,i) = "") then ARY = ARY + REPLACE(FGET(RD,i),"package:","") + "<#CR>"
  //パッケージ名に誤りがないかチェックする
  ifb FGET(RD,i) = "package:" + package
   check = true
   break
  endif
 Next
FCLOSE(RD)
//パッケージ一覧を配列化
ARY = SPLIT(ARY,"<#CR>")
//配列をソート
QSORT(ARY)

//パッケージ名に誤りがある場合強制終了する
ifb check = false and !(package = "")
 MSGBOX(package + "<#CR>パッケージ名に誤りがあります、終了します。")
 exitexit
endif

//クラス名を取得したいパッケージの選択(パッケージ名空欄の場合)
if package = "" then package = SLCTBOX(SLCT_CMB + SLCT_STR,0,"起動したいアプリケーションを選択して下さい",ARY)

if !(package = "")
 //①と同様に
 DOSCMD(COPY(Nox,1,2) + " & cd " + Nox + " & nox_adb shell pm dump " + package + " > " + GET_CUR_DIR + "\Clss.txt")
 RD = FOPEN(GET_CUR_DIR + "\Clss.txt",F_READ)
  Clss = FGET(RD,-2)
  Clss = COPY(Clss,POS("android.intent.action.MAIN:",Clss),LENGTH(FGET(RD,-2)))
  Clss = BETWEENSTR(Clss,package,"<#CR>")
  Clss = COPY(Clss,2,LENGTH(Clss))
 FCLOSE(RD)
endif

//NoxPlayer内でアプリを起動する
if !(package = "") then DOSCMD(COPY(Nox,1,2) + " & cd " + Nox + " & nox_adb shell am start -a android.intent.action.VIEW -n " + package + "/" + Clss)

//あとしまつ
DOSCMD("del " + GET_CUR_DIR + "\List.txt")
DOSCMD("del " + GET_CUR_DIR + "\Clss.txt")

FGOをインストール済みで上記を実行するとアプリケーションの起動が確認できます。
(もちろんどのアプリケーションでも同様です。)

無1題


この記事が気に入ったらサポートをしてみませんか?