2012年7月31日火曜日

[SwipeStarter]問題に対する解答。


マーケット、文字数決まっててあんまり長文書けないのでこちらに。
ってか、何人たどり着くことやら。。。

まぁ、それはさておき!

マーケットコメントから、2点ほど。

①たまにマーカーが消える。
コレはプロセスの問題だと思います。
プロセスには結構たくさん種類があって、全部知ってるわけじゃないから省くけど、SwipeStarter(マーカー部分)はFOREGROUND(前面で動作中)にしています。
その他のフォルダとかドロワーとかは、通常プロセスで起動して閉じる時にキルしてます。
まぁ、マーカーの話なので、ココははしょりますが、このプロセスって奴にも優先度があるし、絶対にキルされないってわけではないです。

ここから優先度の嘘っぱち(イメージ)ね。

システムプロセス
  V
ホームアプリ
  V
--通常プロセス--
 前面アプリ・サービス
  V
 背後アプリ・サービス
--通常プロセス--
  V
その他、今すぐにはつかわなそうな奴とか

だいたいたぶんこんな感じのはず。
暴走で有名なacore(Androidコア)はシステムプロセスかな?
※その昔、SwipeStarterもacore使ってたんですけど、暴走するって言うんでForgroundに変えました。
 コレがよく言い訳に使う、「僕の端末ではおきないんだけど、、、」って奴。
 人によって使い方はさまざまだし、その時起動しているプロセスまで一緒のことなんて無いだろうしね。

で、システムメモリが足りなくなってくると、優先度が低い順に殺していくのね。

なので、たまにマーカーが消えるっていうのは「その直前などにメモリを大量に喰いそうなアプリを起動している」っていう事じゃないかなぁって思います。
あと考えられるのは、システムのプロセスキルがバカになっているか。

たとえば、絶対に消えないアプリなんてのも作れないことは無いんだけど、ゾンビーは、なんか、ねぇ。

システムが「もう限界だから死んでくれ」と言ったら、「ハイ分かりました」と素直に従うアプリにしてあります。
なので、今のところこの現象に関しての対策は考えていません。
すみません。


②物理キーが動かなくなる。くるくるは動く。
コレもプロセスの話になるけど、マーカーのプロセスと物理キーのプロセス違うので、マーカーは死んでいないけど物理キーが動かないって事だと思います。

で、物理キーが動かない原因としては。。
・superuserで実行しているので、非Root端末の場合はエラーが出てる。
・連続実行の場合、プロセスクリア処理に巻き込まれている(物理キーを連続実行って言うのを想定していなかったのでこっちかなぁ。)

そういう状況下な?お便り待ってるぜ!

はぐらかしたわけではない。


ちょっと、こんな感じです。
引き続きなんかやります。

2012年7月30日月曜日

2012年7月19日木曜日

あぁぁーー忙しくなってきた。



本業のほうが忙しくなってきた。

むぅぅぅ。

ぴゃぴゃっとおわらしてswipestarterの要望追加したいのになぁ。

そういえば、galaxy nexusをJB化してしまったのでICS端末がなくなってしまった(汗)
S2のアップデート早く復活しないかなぁ。

もう端末増やせないからなぁ。
嫁さんに殺される。

2012年7月13日金曜日

[FlipClip]定形文とマッシュルームくらいは


定形文とマッシュルームくらいは実装したかったけど、マッシュルームが微妙。

結局、貼り付けダイアログが画面の一番前にいなければいけない(仕様)ので、オーバーレイからマッシュを起動させると、ダイアログが閉じちゃう。
閉じちゃうって事は、戻ってきた時にもう一回長押しをする必要がある。

他のマッシュ呼び出しアプリ使ったほうが手数が少ないね。
常用するかというと、、、まぁ使わないかな。

有料版で定形文だけってのもしょぼいので、もう一押しネタを考え中。

貼り付けボタンをエミュレートできないかなぁ。
そもそも、IMEしかエディットボックス弄れないからなぁ。
うーん。

クマった(o゚(エ)゚o)

仕事忙しいから、現実逃避。

2012年7月12日木曜日

[透けテルっっっ!!]おばぁさん。どうして連絡先読み込み権限をつけたの?





それはね・・・・・・・・





お前の大切な個人情報をインターネットの世界にばら撒く為だーーーーーーーーーーー!!!!!!!!

インターネット接続権限ないけどなぁぁぁーーーーーーーー!!!!!

ストレージへの書き込み権限もないけどなぁぁぁぁぁぁーーーーー!!!!!

他アプリへのインテントは電話と連絡先だけだけどなぁーーーーーー!!!!

どうやってばら撒いてやろうか。
ひっひっひっひっひw

がぁーーーっはっはhっはああああ。
はぁ。




漢字が読めない人にも分かるようにひらがなで説明も書いてあげたのに、それすらも読めないのね。

アプリに興味をもってくれたところまでは良しとしよう。
それならばデベロッパにも興味を持ってココまでたどり着いて来てくれ。

「権限厨」って言葉で片付けられちゃうのかわいそうだから、どこかで仕入れたその中途半端な知識を、もう一度見直す機会を与えようじゃないか。

まず、権限について。
権限はその機能を使っていても(もちろん使っていなくても)アプリの設定にコレを使うよって書いてあるってこと。
で、開発者はコレを書かないとその権限を使えない。
コレは、ユーザに「こういうことをするアプリですよ。」って教える為。

今回は個人情報の漏洩って言うところだけ説明するね。
「個人情報」に含まれる権限ってのは結構いろいろある。
・連絡先データの読み取り
・連絡先データの書き込み
・カレンダーの・・
・ユーザ辞書の・・・
・ブラウザの履歴とブックマークを・・
・ログの読み取り
などなど。

上記で分かるとおり、ただ読み込むだけでも権限を設定する必要がある。
そりゃそうだよね。大切な個人情報だもんね。

でも、ただ電話帳読み込んでるからって「キーッ」ってなるのは間違い。

電話帳を読み込むことが出来ても、それを外に持ち出せないと意味が無いんだよ。
そうでしょ?

で、考えなくちゃならないのが、権限の組み合わせ。
厳密に言うとちょっと違うけど、個人情報の読み取り権限だけのアプリだったら、たぶん何もしない。
っていうか出来ない。

個人情報の取得は出来ても、漏洩が出来ない。
だって、個人情報を端末の外に持ち出す権限が無いから。

牢屋の中で手帳拾っても使い道無いでしょ。
それと一緒。

漏洩のパターンとして何に気をつけなきゃいけないかというと、「インターネット接続権限」が一緒にくっついてて、インターネットを使って外へ情報を送信できる権限を持っている物。
たぶんコレは一番分かりやすい例。
でも、この組み合わせって結構ある。
なんでやって言うと「広告」。

アプリでよく見る「広告」はインターネットに接続して広告情報を配信しているから、「インターネット接続権限」が必要になる。
こうなっちゃうと分からないよね。

え?どうやって判断すんだって?

そういう場合は、権限の無い有料版を購入すること。

え?無料がいい?
わがまま言うな。

じゃぁ、信頼のおける開発者(オフィシャルとか)のアプリしか使わないこと

え?何を持って信頼出来る?
しらんがな。

そもそも、個人情報ガンガン抜き取って送信するアプリの説明欄にこんなこと書いてあったらどうなの?
「このアプリは個人情報を取得していますが、電話帳を表示する為です。また、インターネット接続権限は広告を表示する為です。」
コレは信用出来るってこと?
オレから言わせれば、「ちょっと何も考えなさすぎじゃw」だけど。

ちょっと考えてみよう。

アプリの権限説明はすべて事実が記載されているのか。
→事実を記載するような開発者は悪いことはしない。

じゃぁ各アプリでの権限説明は必要か。
→Playにはこのように書いてある。
------------------------------------------------------------
■連絡先データの読み取り
タブレットに保存されているすべての連絡先(アドレス)データの読み取りをアプリに許可します。
この許可を悪意のあるアプリに利用されると、データが他人に送信される恐れがあります。
携帯端末に保存されているすべての連絡先(アドレス)データの読み取りをアプリに許可します。
この許可を悪意のあるアプリに利用されると、データが他人に送信される恐れがあります。(※)
■連絡先データの書き込み
タブレットに保存されている連絡先(アドレス)データの変更をアプリに許可します。
この許可を悪意のあるアプリに利用されると、連絡先データが消去または変更される恐れがあります。
携帯端末に保存されている連絡先(アドレス)データの変更をアプリに許可します。
この許可を悪意のあるアプリに利用されると、連絡先データが消去または変更される恐れがあります。
------------------------------------------------------------
ココまでしっかり書かれているんだから、各アプリでの説明は必要なし。
連絡先データの読み取り権限があるのに、連絡先を利用するような機能が有るか無いかの判断くらい出来るでしょ。

たとえば、どこにもそんな機能が見つからなかった場合は聞いてもいいと思うけど。

(※) 読み取りに「送信される恐れがあります。」って書いてあんじゃん。orz
この書き方がすべて悪いんじゃね?コレだけだと送信なんか出来ねーよ。

ちょっと話を戻して、「中途半端な知識をもう一度見直す機会」のところを(こんな偉そうな事言ったんだから)纏めてみると
・個人情報読み込まれても、外に送信出来る権限がなければ無害。
・個人情報の読み込みと、外部への送信権限を持ったアプリの場合、開発者を観察する。(信頼のおける開発者かどうか自分で判断する)

です。
まぁ、個人情報を見られてるって言うモヤモヤ感も分からんでもないけど、ぶーたれる前にちょっと考えた方が良いよね。

お勉強になったかな?

はい。
ではこれらを加味して、「透けテルっっ!!」は安全でしょうか、危険でしょうか。


せーーーのっ!


「安っ全っですっ!」

はいよく出来ました。
もうくだらないコメント書くんじゃぁありませんよっ。


一応、その他漏洩の可能性のある権限ね。
「SMS発信権限」:電話回線で情報を送信
「SDカード等への読み書き権限」:コレだけだと何も出来ない(出来る)けど、たとえば、アプリ2個用意して1個は抜いてSDに保存機能、もう1個はSDから読み込んで送る機能をつければ、1個ずつはあたかも安全風。
・・・・っていうか、悪いことやろうとすれば、「ぬけみち」なんざ幾らでもあるわい。書ききれんわい。
なーんも権限無くても、もともと端末に入っているブラウザ起動時のURLにパラメータつけるだけで送信できるし。

上の纏めが完全に意味の無い物にw

2012年7月11日水曜日

[WaitCancelHome]この前の対応じゃ足りなかったorz


ホームのページがTOPにならないんだ。
そういうことか。

ぜんぜん気づかなかった。
自分のホームがそもそも1画面だから、ページ移動まで見てなかった。

GalaxyS2の標準ホームではTOPに戻ること確認できました。
すいませんでした。

一緒にホームボタンも直しました。

アプリ未着手要望一覧


要望頂いた皆さん。
忘れてませんよ。

[SwipeStarter]
フォルダ内のアイコン移動。
フォルダのフチの色
マーカーの一括設定(太さ、起動距離、色、透明度)
マーカーごとの無効/有効
フォルダ一覧の並び替え
フォルダ5×5追加
ドロワーの初期表示設定

[FlipClip]
色変更
サイズ変更
履歴削除(全削除・編集)


ココに乗っている物に関しては、何とか全部かなえますよ。
だめっぽそうな物はその場でお断りしているつもりなんで。

ちなみに、着手順は僕の気持ちです。
すいません。
1個に長時間悩むより、簡単な物をパパッと片付けたほうが気持ちが楽なので。

2012年7月10日火曜日

[キーボーモニタ]うぇぇぇん。改修多いよぅ。


敢えて言おう、バグでないと。

前にも書いたけど、入力項目へのフォーカスでキーボードのON/OFFを判断しているから、フォーカスをバンバン変更するアプリとかの場合、ちょっとおかしな動きをします。
後、センスの無いカスタムビュー名の場合(ひどい言い方だけど・・)それが入力項目とすら認識できないみたい。
S「ピー」モード(一部自主規制)とかひでーよ。
本文入力ボックスなんて、長押しイベントも飛んでこない。
→あ、コレFlipClipの話。

有料アプリは金払えば対応できるけど(買わないけど、無料の奴から想像して対応する)、プリインアプリはどうやっても出来ない。

あぁぁぁっぁぁぁぁぁ、こんなアフターケアのめんどくさいアプリリリースしなければよかったZ
まぁ、でも少しでもSwipeStarterユーザに喜んでもらえれば。

そして、最近ぱったりだったSwipeStarterの改修要望が急にがんと来た。
会社の仕事もがんと来た。

やっぱり、会社が一番なので、ちょっと更新滞るかも。
へんな動作系は何とか即改修やってみるつもりです。

敢えて言おう、バグでないと。
そういうアプリであると。

と言ってみたい。

2012年7月5日木曜日

[キーボードON/OFFモニタ]どうしようもない問題発覚


タレコミから発覚しましたが、初期表示で表示されていない入力ボックスの場合、入力ボックス自体が消えます(汗)

なんでやというと、基本的な動作はこんな感じ。
①あるアプリを表示します。
②キーボーモニタで判断した入力項目にフォーカスがあたります。
③「キーボードが表示されたよー」というブロードキャストで、それを受信したアプリ(この場合SwipeStarterのマーカーOFF)が動きます。
④一回SwipeStarterに行って処理(マーカーOFF)をした後、あるアプリに処理が戻ってきます。
⑤あるアプリが"再"表示されます。

このような動作になっています。

注目すべきは⑤の再表示。
全部バックグラウンドでやってるんですが、そういうものらしい。
再表示される時には、初期状態に戻リマス。

初期状態に戻ります。

初期状態に戻ります。

初期状態に戻ります。

初期状態に戻ります。

初期表示で表示されていない入力ボックスが消えます。

ためしにIME版の奴(以前ボツった奴)で試したけど、同じ挙動。
がっかり。

仕方が無いので、指定画面にある入力ボックスはマーカーON/OFFのブロードキャストを投げないっていう対応にしました。
悔しい。

すいません。

もし、このアプリの入力ボックス出なくなった~とかいう問題があればご連絡ください。
個別対応します。

個別対応ばっかりだなぁ。
こんなアプリマーケットに上げてよかったのか。。。

[FlipClip]について


■名前について
何でFlip?って

イメージとしては、テレビでよく使われる「フリップ」と語呂から。
「お手元のフリップに書き込んでください!」→クリップボードに書き込み。
「それではフリップを前に出してください!」→貼り付け前の一覧。

似たような機能(?)だと、「Windowsのフリップ3D」みたいな。
Alt+TAbで履歴一覧表示。

でも「フリップ」だけだと「めくる」とか「はじく」「ぽいと投げる」「さっと動かす」みたいで、なんかぜんぜん違う意味っぽくなっちゃってw
しかも、「FlipClip」っていう動画共有サイト(もうなくなったみたいだけど)があったとか、、あぁぁぁ、ってなりましたが、でももうめんどくさいからいいやって感じですw

一応ちゃんと考えたんで許して。


■見た目について
もうちょっとかっこよく出来ないかなぁ。

■動作について
基本的には5秒間隔のクリップ機能と、それを表示するってだけです。
ただ、この5秒間隔ってのがね。
コレも仕方が無い。
Androidからクリップボードの中身が変更になったよ通知が来ないから、基本待機して監視し続けるしかない。
5秒ってのも、他のクリップボードアプリ見てたら大体こんな感じだったから、バッテリに優しくと使いやすさの良い感じのところがコレなんだろうと。

ただ、すぐ貼り付けたいこともあると思うので、FlipClip起動時にも最新チェック入れておきました。
コレなら、5秒待たなくても貼り付けられる。

もう少し改善します。

自分の理想としては、バーっと5件くらい連続コピーしても全部履歴に残ってるくらい。
なんか良い方法ないかなぁ。

■マーケットの質問について
FlipClip、クリップボード経由じゃないといけません。
入力ボックスに直接文字を送信できるのはキーボードアプリだけなので。
コレは、、たぶんどうやってもキレイな抜け道は無いかなぁ。


■設定画面について
SwipeStarterでちょっと懲りたので、設定画面を作らないっていう暴挙に出ていますw
まぁ、そのほうがシンプルでもあるし良いかなぁと。


■注意点
アクセシビリティサービス使っているから、死なないと思うけど、死んでたら、アクセシ・・のチェック付け直してくらさい。

2012年7月4日水曜日

[SwipeStarter]シンプル版のアップデートしなきゃ。


次のアップデートはこんな感じ

アニメーションを利用削除
検索ボタン長押しでマーカーON/OFF
マーカー設定中のマーカー表示
キーボードON/OFFのブロードキャスト受信
マーカー単位の振動設定
振動強さ変更

SwipeStarterの対応~バグ改修終わって、落ち着いたらこっちにもと思ってて、、忘れてたわけじゃないんです。
あんまり頻繁に更新しないようにと思って、優先度が落ちていってしまった(汗)

実装は終わってます。
テスト中です。

しばしおまちを。

[キーボードON/OFFモニタ][FlipClip]少しだけ自動判別ロジックを入れてみた。


今のところ個別対応した物(超少ないけど)から、誤動作しない範囲の自動判別ロジックを考えて入れてみた。
今までのに比べれば、だいぶ反応するようになったはず。

ただ、やっぱりフォーカス設定を自前でやってる奴(と勝手に想像)はイベントが複数飛んでしまうことがある。
コレに関しては、前後0.5ミリsecでイベントを纏めて、、云々かんぬん見たいな処理を入れたほうがいい気がしてきた。
→ちょっと、次はコレをやろう。

あと、TYPE_VIEW_FOCUSEDとTYPE_WINDOW_STATE_CHANGEDの飛び方もなんかよくわからん。
順序は決まっていないのかね。
でも、アプリによってだから、K.I.T.T.アプリ側に何らかの設定をした場合に発動するんだろうなぁ。
これ、早く見つけたいなぁ。

そもそも、入力項目が必要なアプリなんてそんなに作ったこと無いから、いろいろ勉強になった。

過去形w

まだまだ、直しますよ!


2012年7月3日火曜日

[キーボードON/OFFモニタ][FlipClip]入力項目の判断更新を自動化できないかなぁ。


入力項目の追加を勝手に学習していくようにして自動化出来ないかなぁと思ってやっているんだけど、いいアルゴリズムが思い浮かばない。
FlipClipのほうはいけるかなぁ。
→でもちょっとこっちは後回し。(イベントいっぱい取得する事になるから電池の持ちが悪くなるのは目に見えてる)

キーボーモニタのほうは、ちょっと複雑なんです。
結局、こっちが想定していない入力項目(と思わしき)が来た場合、内部に保存しておいて、次回からは反応するようにってするんだけど、一筋縄ではいかない。
フォーカスでしか判断できないし、抜けたことの判断(今はViewが変わった)の順番にも寄るんだけど、ただ追加していくだけでは無理。

いい例が、指摘もあったけどGooglePlayの検索窓。
あいつの場合、フォーカスが移った後に検索候補を出すんだけど、それが通知の変更に負けるorz
だから、フォーカスで変えると検索候補が出なくなっちゃう。
なので、テキストチェンジで変えてるんだけど、コレもあまり万能でない。
結構苦肉の策。
だから単純に追加って言うのが難しいのね。


あと、今感じているのは、アクセシビリティサービスのイベントが飛んでくる順番がちょっと微妙。

galaxys2のMMS
通常の場合)
07-03 12:17:16.484: DEBUG: Window state change:com.android.mms.ui.ConversationComposer dispkey:false
07-03 12:17:17.934: DEBUG: Focus change:android.widget.EditText dispkey:false
07-03 12:17:17.934: DEBUG: send キーボードが表示されたよ
07-03 12:17:18.464: DEBUG: Window state change:com.android.mms.ui.ConversationComposer dispkey:true
07-03 12:17:18.464: DEBUG: Focus change:android.widget.EditText dispkey:true

たまにおかしい)
07-03 11:57:36.224: DEBUG: Focus change:android.widget.EditText dispkey:false
07-03 11:57:36.229: DEBUG: send キーボードが表示されたよ
07-03 11:57:36.829: DEBUG: Window state change:com.android.mms.ui.ConversationComposer dispkey:true
07-03 11:57:36.829: DEBUG: send 画面が変わったからキーボード消えたはず。
07-03 11:57:36.829: DEBUG: Focus change:android.widget.EditText dispkey:false
07-03 11:57:36.829: DEBUG: send キーボードが表示されたよ
07-03 11:57:37.029: DEBUG: Window state change:com.android.mms.ui.ConversationComposer dispkey:true
07-03 11:57:37.029: DEBUG: Focus change:android.widget.EditText dispkey:true

画面変更とフォーカスチェンジの順番がちょっとおかしい時がある。
この場合、同一ミリsec(11:57:36.829)に2つブロードキャスト呼ばれているから、どっちかが無視されちゃう。
だから、消えない時もあるし、消える時もある。

でも、コレってココまで来るとどうしようもない。
イベント少し纏めようかなぁ。

あと、Viewが変わった事でマーカーONにしろって投げるんだけど、履歴から戻るような奴(?)に関してはView変更イベントが走らないので、「ホームまで行かないと戻らない」みたいな事になることがあります。
これ、今調査中というか、何も飛んでこないから動きようが無い。
どうしようかなぁ。

例)MMS表示してバックで戻っているところだけど、ホームに戻る前にウィンドウチェンジが来ない。
07-03 12:24:42.519: DEBUG: Window state change:com.android.mms.ui.ConversationComposer dispkey:false
07-03 12:24:44.854: DEBUG: Focus change:android.widget.EditText dispkey:false
07-03 12:24:44.854: DEBUG: send DISP TYPE_VIEW_FOCUSED
07-03 12:24:45.244: DEBUG: Window state change:com.android.mms.ui.ConversationComposer dispkey:true
07-03 12:24:45.244: DEBUG: Focus change:android.widget.EditText dispkey:true
  想定ではココにWindow state changeが来るはず
07-03 12:24:48.999: DEBUG: Window state change:sx4s9xdw.stoichome.StoicHomeActivity dispkey:true

[キーボードIN/OFFモニタ][FlipClip]やっぱちょっと甘かったかなぁ。


動かないアプリ結構あったみたい。
ごめんなさい。

マーケット上で謝れってw

(マーケットの履歴部分とかの最大文字数が少なすぎて書きたいことぜんぜん書けないんだよなぁ。ほんと難儀。)
 →コメントに対して返信が出来る機能が公になったら、いろいろめんどくさいかも知れないけど、こういうところでは役に立つな。

話ずれた。

いやー、本とすいません。
自分があまりアプリ入れてないから、すげーいけんジャン!!とか浮かれてたけど、甘かったみたいね。

っていうか、エディットテキストのカスタムビューなんてあまり使われていないと思っていたけど、意外と多いのね。
ぜひ、皆さんで使いやすいアプリを育てていきましょう(責任転化)!

あ、あと、内容的にはほぼ一緒なので、「キーボードIN/OFFモニタ」で報告受けた物に関しては「FlipClip」に随時反映させていきます。


うん。
あ、あと、いがいと反応が早くてびびった。
やっぱ、作ってよかった。

2012年7月2日月曜日

[FlipClip]作った!!!


クリボ、だせー。
アンインスコ推奨w

こっちでしょ。
今回のは僕の望む形のアプリが出来た。

まだデザインとかちゃんとしていないけど(いつもそうだけど。。)何とか使える形にはなった。
ぜひ。


FlipClip
https://play.google.com/store/apps/details?id=tora.mamma.flipclip




この機能を利用するには、端末の設定画面から「ユーザ補助」→「FlipClip」をチェックしてください。

自動的にテキストコピーを10件分保持します。

テキスト入力ボックスで長押し貼り付けをする際に、ダイアログと同時にクリップボード一覧が表示されます。

クリップボードを利用しない場合、そのまま貼り付けを押下してください。
クリップボードを利用する場合、クリップボード一覧をタップすると、現在の最新クリップをタップしたものに置き換えます。
そのまま貼り付けを行っていただければ選択した物が張り付くはずです。

有料版で定形文やマッシュルーム対応を検討中。


ちなみに・・・

以前のブログ記事と比較すると
・ステータスバー常駐型クリップボード 6手
・一般的なクリップボードをランチャー起動 6手 or 5手
・マッシュ 4手
・クリボ 5手

となっていたが、今回のは
①入力項目表示
②テキスト入力エリア長押し(貼り付けダイアログの上にオーバーレイでクリップボード一覧表示)
③クリップボードから内容選択(現在の最新に置き換え)
④ダイアログを押下で貼り付け

キタ!!!!!!
4手w

ぜひ、一度使ってみてください。

アクセシビリティサービス関連で、使えそうなものをアプリ化してみるメモ。


①キーボードON/OFFモニタ
 先のブログでも何度か取上げたけど、キーボードのON/OFFを擬似的に判断してブロードキャストを投げる。

②現在表示しているアプリ
 ウィンドウフォーカスが移ってきたアプリのパッケージ名とクラス名が取得できるから、今表示している~~を送信できる。
 ちょっとやってみた感じ、ウィンドウフォーカスが毎回必ず来てくれないみたい。
 →タイムラグあり。

③入力項目の長押しブロードキャスト
 使い道は、、、、無いかな。
 うーーーん。。。貼り付けダイアログの前にクリップボードアプリ表示すれば、、!!!
 えっえっえっ、これものっそい使えるんじゃ?
 貼り付ける物をクリップボードで選択してから貼り付ければ、先にやっておく必要ないんだよね。
 ちょっとコレまともに考えよう。
 毎回出てくるからキーボード変更したいときとかコピーの時とかは鬱陶しいかもね。
 それこそ、オーバーレイでダイアログの上と下に出せばいいか。
 上がコピーで下が定形文とか。
 おぉぉ。いいんじゃね?
 なんか、「クリボ」よりいいの出来そうな気がしてきた。

④指定の通知が来た場合ブロードキャスト
 いる。。。かな?

こんなもんか。
③思いついただけでも、メモした甲斐があった。
さて作りますかーっと。

[キーボードON/OFFモニタ]作った!


公開しました。
キーボードON/OFFモニタ
https://play.google.com/store/apps/details?id=tora.mamma.edittextmonitor

この機能を利用するには、端末の設定画面から「ユーザ補助」→「キーボードON/OFFモニタ」をチェックしてください。
警告メッセジ出るけど、何も悪い事していないのでお気軽にw

どういったアプリかというと、
現在のフォーカスがどこにあるかを判断して「擬似的に」キーボードのON/OFFを判断。
キーボードがONの場合、"open.android.intent.action.DISP_KEYBOARD"ブロードキャストを投げる。
キーボードがOFFになると、"open.android.intent.action.HIDE_KEYBOARD"を投げる。

それだけ。
なので、このアプリだけでは何の役にも立ちませんw

■利用想定
僕が作成しているSwipeStarterなんですが、ディスプレイの最前面にマーカーと呼んでいるタッチポイントが配置されます。
最前面にある事により、現在どんな画面を操作していようが好きなアプリを呼び出せるっていうアプリなんですが、鬱陶しい問題として、「常に」最前面にマーカーが配置されちゃう。
いわゆる「誤爆」ってやつ。

で、要望として多いのが、せめてキーボード表示時にはマーカーを消してくれっていうもの。
今まで、コレがどうしても出来なかった。
※Androidからコレを判断する情報が何も提供されていないから。

で、IME(キーボード)に仕組みを実装してみたりしてたんですけど、結果ボツ。
→自分が普段使っているIMEを替えることにはものすごく抵抗がある為。

なんか使えるのないかなぁと資料あさっていたところ、このアプリに行き着きました。
SwipeStarterユーザなら使ってみる価値はあると思います(自画自賛)。
ぜひ。

■注意点
このアプリを利用する上で、注意点が一個あります。
動かない奴があります。
その時は、マーケットのコメ欄かメールで反応しないアプリ名を教えてください。
個別対応します。

~何で動かない物があるか~
入力項目にフォーカスが当たっているかを判断する為に、フォーカスが当たっている「クラス名」というのを見て判断しています。
「クラス名」って言うのは項目の名前みたいな物で、入力項目だよーとかボタンだよーっていうのが分かる。
基本的にはAndroid標準の物を使えるんですが、開発者はその標準の奴を改造出来ます。
改造した際には、そいつに名前をつけます(つけなきゃいけない)。
たとえば「hoge.hoge.MyCustomView」。
それがクラス名になります。
こうなると、入力項目かどうかを判断できません。
入力項目で無いと判断されると、動きません。
コレが理由です。

その場合は、「hoge.hoge.MyCustomView」は入力項目だよって覚えさせる必要があります。
→「マーケットのコメ欄かメールで・・・」

■開発者向け
こんなインテント欲しい人はそうそういないと思いますが、もし利用したければまにふぇすとに以下追記とレシーバを作成してください。
もちろん、「キーボードON/OFFモニタ」が有効でないと飛んでこないのでお忘れなく。



    
        
        
     
        
    

public class YourReceiver extends BroadcastReceiver {

 @Override
 public void onReceive(Context context, Intent intent) {

  if ("open.android.intent.action.DISP_KEYBOARD".equals(intent.getAction())) {
   //キーボードが表示された時の処理
  }
  if ("open.android.intent.action.HIDE_KEYBOARD".equals(intent.getAction())) {
   //キーボードが隠れた時の処理
  }
 }
}