アクション→システム→インテント送信
さて、今回はインテント送信です。
そもそもインテントってなんだって話ですが
簡単に言うとシステム・アプリや
アプリ・アプリ間で
やりとりされるコードになります。
今回はアプリやショートカット起動の時なんかに使われる
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のシステム的に不可能な
「左手キーボードを二つ繋げ、
片方のみを「右手」配列にする」なんて
曲芸じみたことも出来る、海外でも
まずお目にかかれないソフト)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます