アクション→システム→インテント送信

さて、今回はインテント送信です。

そもそもインテントってなんだって話ですが

簡単に言うとシステム・アプリや

アプリ・アプリ間で

やりとりされるコードになります。


今回はアプリやショートカット起動の時なんかに使われる

MAIN(Activity)発行のINTENTの解説ですね。

(Broadcastインテントの書き方は、

プロファイル→「インテント受信」で解説してますです)


たとえば、音楽アプリを開いたとするじゃないですか。あれってシステムが「音楽アプリを開く」というインテントを発行してくれた結果として、

アプリが開いてるわけです。


なのでそれと同じコードを発行してやれば

細かい動作ができるわけですが

もちろん、taskerで発行できるものや

発行できないものなど種類があります。



基本は「アプリ起動」タスクの長押しや

shortcut maker というアプリで探したり

keymapperでローラー作戦で調べたり

macrodroidのテンプレ漁ったりして

探っていくもんですが

とはいえ我々は初心者ですので

内容が分かっても記載例が分からない。


アクションは? カテゴリーは?

MIMEタイプは? 

データは? フラグは? EXTRAは? 

パッケージは? クラスは? となります。


説明したいのは山々ですが

正直僕もわかんないのが多いので

記載例と共に解説していきますね。



例① アンインストール画面を呼び出すインテント


アクション

→「android.intent.action.UNINSTALL_PACKAGE」


データ

→「package:com.theswitchbot.switchbot」


対象→「Activity」


簡易解説 これはswitchbotの

アンインストール画面を呼び出してますね。


アクションでアンインストール画面の表示を指示して

データの「package:」以降の記載でアプリを指定してます。


データってこういう使い方するんですね。

(macrodroidのテンプレ漁って見つけました)



例② オーバーレイ権限付与画面を呼び出すインテント



アクション

→「android.settings.action.MANAGE_OVERLAY_PERMISSION」


パッケージ

→「com.android.settings」


クラス

→「com.android.settings.Settings$OverlaySettingsActivity」


対象→「Activity」



例③ 使用状況確認の権限付与画面を呼び出すインテント


アクション

→「android.settings.USAGE_ACCESS_SETTINGS」


パッケージ

→「com.android.settings」


クラス

→「com.android.settings.Settings$UsageAccessSettingsActivity」


対象→「Activity」



簡易解説 これもmacrodroidを漁って見つけました。

(「インテント」と日本語で検索かけちゃダメです。

「intent」と英語で検索かけないと引っかかりません)


見たところ、パッケージとクラスにそれぞれ

値が入ってますが、別にこれを消しても

動いてくれるみたいですね。 

(しかし当然、com.settingをcom.android.vending

とかに変えちゃったりすると動かなくなります)


(要するに、「アクション」が指示として1番強く

「パッケージ」や「クラス」でその詳細を

指定してるんでしょう。

→なので「そもそもある」Intentなら

わざわざpackageやclassを

指定しなくてもいい

→つまり、「パッケージ」や「クラス」を

指定しなくても、「アクション」だけで発動可能と

なるんでしょうね。…たぶん)



例④ yuzubrowserのショートカット起動(設定)を呼び出すインテント


アクション

→「android.intent.action.MAIN」


パッケージ

→「jp.hazuki.yuzubrowser」


クラス

→「jp.hazuki.yuzubrowser.legacy.settings.activity.MainSettingsActivity」


対象→「Activity」



これはshortcut makerアプリの

「アクティビティ」から引っ張ってきました。


keymapperの「Intent送信」でも

同じように探せはしますが

あっちはちょっとややこしい上

発信できないIntentも表示されるんで

shortcut maker の方が楽ですね。


(あ、keymapperの方だと「アクション」が

「android.intent.action.VIEW」になりますが

結果として同じように設定画面開いてくれますね)


(たぶん、VIEWの意味が画面表示だから

「設定画面を」「開く」ってMAINの挙動と

結果として同じことになったんだと思います)


(要するに、こんなもんはとにかく

動けばいいんすよ動けば)



例⑤ Logcatからintentを逆算する。


前回紹介したLogcat出力から

どのintentが発行されたのか逆算します。


例えばこれ。


コンポーネント

→「ActivityManager」


絞り込み

→「START u0 {act=android.settings.APPLICATION_DETAILS_SETTINGS dat=package:net.dinglisch.android.taskerm flg=0x10008000 cmp=com.android.settings/.applications.InstalledAppDetails} from uid 10242 and from pid 9644」


とあるんですが、これTaskerの

アプリ情報を開いたときのLogcatなんですよね。

で、これを逆算してintent発行しようとすると

以下のようになります。


アクション

→「android.settings.APPLICATION_DETAILS_SETTINGS」


パッケージ

→「com.android.settings」


データ

→「package:net.dinglisch.android.taskerm」



対象→「Activity」


はい。Logcatのdat=の記載って「data」

つまり「データ」の記述にあたるんですね。


(ついでに言うと想定ですが、cmpの「/」前の記述が

動作してるアプリケーション名だったりしそう)


──────────────────────────────────

ちなみに他にも、いろいろ解説してます。

ご入り用ならこちらもどうぞ、持ってってくださいな。


macrodroidショートカット(intent&kcm併用)

https://kakuyomu.jp/works/16817330663198601284/episodes/16817330667193119791

(アプリのTextidを参照し、

該当IDのタッチを自動化することで

Bluetoothコントローラー等の外部入力から直に

アプリの動作をショトカ発行出来ます)

(僕はお絵かきアプリに使ってます)


keymapper

https://kakuyomu.jp/works/16817330663198601284/episodes/16817330667184328084

(他のアプリに入力を渡す前に

キーコードを上書きできる、唯一無二のアプリ。

ただし、Taskerやmacrodroidの

タスク・マクロショートカットと

死ぬほど相性が悪い)

(だから、Intent発行をkeymapperで行って

受信させる必要があったんですね)


kcm

https://kakuyomu.jp/works/16817330663198601284/episodes/16817330668018153223

(通常アプリより上の権限で

androidのキーボードをリマップ)

(外部キーボードからの入力を意味のない「f13」等のキーに出来る。

・・・つまり、これをkeymapperと合わせれば・・?)


~~PC関連~~


Vysor

https://kakuyomu.jp/works/16817330663198601284/episodes/16818023213838311738

(PCからAndroid操作を行えるソフト。

画面が割れたスマホなんかを動かしたいときや

PCを動かしながら、他の作業を同じPC画面で

したいときなんかにどうぞ)



nodoka

https://kakuyomu.jp/works/16817330663198601284/episodes/16818023212503628526

(ドライバとしてwindowsに登録

つまり、システムレベルとほぼ同等で

物理キーを変更できる)

(例えば、windowsのシステム的に不可能な

「左手キーボードを二つ繋げ、

片方のみを「右手」配列にする」なんて

曲芸じみたことも出来る、海外でも

まずお目にかかれないソフト)




  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る