混沌雑記帳






時計Widgetを更に更新。
スクリーンON/OFFに連動した更新ON/OFFを再実装した。

一度はずした理由は
・スクリーンOFFの状態(Widget更新OFF)でサービスが死ぬと復活が難しい
・AlarmMagaer.RTCなら端末スリープでは実行されないので問題ない
といったところ。

ただまあ、電池消費を考えると
・サービスを殺してしまうような使い方は考慮する必要なし
・メモリ圧迫などでサービスを止めざるを得ないときは仕方ない
という考え方でもいいかと。
RTCの場合、確かにスリープならOKなんだが
スクリーンOFFだけど無線LANなどを維持してると動いてるっぽい気も。

スクリーン検知は時刻読み上げでも使用してる。
時刻読み上げの都合上毎0分はスクリーンOFFでも起動したい。
ので0分だけRTC_WAKEUPにしておけばそこでサービスが復活する。

これで夜間など放置時の消費は最小限になるはず。
あとはONだけどWidgetが見えていないときの対応かなぁ。
アクティブなアプリがHOMEなら、とかやればいいのかな?
モバイル | Comments:0
(2011/12/02(Fri) 17:45:43)

Androidの実装って現場から考えたら抜けが良くあるのは珍しくないんだが、その一例。
センサー関連が標準APIで充実してていいなぁ、と思うとそこに罠がある。

センサーの扱い方は以下の通り。
1.SensorManagerを取得
2.SensorManagerから目的のSensorがあるか取得
3.SensorManagerに目的のSensorのListenerを登録
4.Sensorの値に変化があるとListenerが呼び出される
5.必要なくなったらSensorManagerから登録を解除

ちょっと見にはポーリングとかしなくていいなと思う。
いや実際、これでも実動作次第では問題ないともいえなくは無いんだが…。
問題になるのは4の"変化があると"という点。
センサーを起動してから変化があるまでは状態がわからないという問題がある。
別に取得関数もあれば問題ないけど照度センサーとかはそんなものないし。
というか単に、登録されたら即現状の値を通知するという動作をしてくれればで問題ないんだ。
(登録した側は数値を知らないんだから、当然"不定→何らかの値"に変化となる)

この挙動がTAB固有なのかAndroid全体なのか判らないが
そういうケースに回避できるルートが用意されて無い時点でちょっと検討足りてないんだろうなと。
MediaPlayerの不足とかWidgetProviderの不足とか見るにつけ誰もそこで疑問に思わないのかと。
まあ仕事でやってるわけでもない言語の壁の外の趣味プログラマじゃこんなところで愚痴るしかないんだがw
モバイル | Comments:0
(2011/12/02(Fri) 09:07:17)

どうも最近TABの電池の減りが早くなってきたなと思ったんだけど
本体の劣化の前にまずはアプリを疑うのがスマートフォンの基本。
バッテリー消費を見てみると自作の時計ウィジェットが問題になってるっぽいw
(色々弄ってるんで直近で上手く動いてなかったときのせいだとは思う)

とりあえず間違ってて動かなかった設定表示周りとか修正。
別々の要素でも個別にupdateAppWidgetしちゃいけないとか
PendingIntentはClass.thisにしておくべきとか、微妙なところで引っかかってた。
そのせいでPendingIntentがおかしなことになってたのも多分問題。

もう一つは時報機能。
TTSの試しで初期に判ってない状態だったから結構無駄が。
常にTTSプロセスを確保してるのは意味ないんだけど、そうしないと上手くいかなかったので。
他で試した結果、初期化-読み上げ-開放をする方法がわかったので変更。
結構コード的には面倒な事になるのが微妙なところだがw

後はWidgetの定期イベント(時刻書き換えタイミング)が常時動くのも問題か。
表示してない時に表示更新はいらないんだから止めたいんだけど…。
せめてスクリーンOFFのときだけでも止めるべきなのかなぁ?
Service側で検知なので、場合によってはWidgetが止まっちゃうんだよなw
AppWidgetProviderにonVisibleを追加して欲しいわ。
モバイル | Comments:0
(2011/11/30(Tue) 16:37:07)

Bluetoothイヤホンの新型。LBT-HP06LBT-HP05。(AV Watch)
これロジテックの03、04の後継だな。

どっちかといえば05だなやっぱり。
先代に比べるとイヤーピース部が長くなってハウジングが上になったから耳への干渉は小さそう。
後値段差がな。06が7000円で05が4000円とここまで違うとw

先代は幾らだっけと思ったら04が7000円、03が5000円だった。
ACアダプタ付もあってそれは1000円増と。
しかし直販では03が既に2500円まで下がってて笑う。
まあ後継でたから、だよねと。

しかしやっぱり試してみたいけど、普通のイヤホンは兎も角BTはないんだよなぁ。
モバイル | Comments:0
(2011/10/27(Thu) 18:36:13)

以前作ってMP4しか使えないんじゃ微妙じゃね?だったもの。
PCが新しくなってMP4エンコード中心になったので再調整。

とりあえず、MP4なら再生が出来るところまではOKだった。
ただシークに未対応でシークバーとかボタン触ると再生止まっちゃう。
というわけでその辺りの調査から。

MediaControllerにはsetPrevNextListenersというメソッドがある。
なにになんでシークボタン側のsetがないのかと思ったら
シークボタンを無効にするのはコンストラクタのフラグなのねw
これ使用中に切り替えるとかはありえないって思想なのかなぁ?
FastForwardボタン触ったときのListenerとかも設定できないし。
まあそこまでやるならカスタムで画面作れって話か。
しかし、ここまでやってふと気がついたのはシークバーはどうしようもねえw

というわけで今度はそもそもシークできないの?これっていう調査。
普通のApacheからMP4を再生してみる。あれ?シークできるぞ?
ということで何が違うのか各種ログを確認。

 あ、Rangeリクエストが処理できた場合のレスポンスって206だったのか。

という単なるhttpの把握漏れだったことが判明w
そりゃ途中からは取れないと判断すれば「再生できない」になるわな。
これでシークはできるようになった。が今度はファイル終端でエラーが出る。

 あ、Content-Rangeがないからか。

反応だけでやらんで一度はきちんと仕様に目を通すべきだねと反省。
というわけで、シークは問題なく出来ることが判明。
流石にローカルに比べてシークレスポンスは落ちる。
(シークした後に再生できるまでバッファ時間がかかるのだろう)
それでもWindowsファイル共有に突っ込んどくだけでローカル同様再生できるのは便利。

DLNAを使えばトランスコードも出来るし使えるアプリも多いんだけど
イマイチ鉄板的な組み合わせがないのがなんとも。
まあでもこれでちょっとは消費が早くなるかな?
この用途に関しては7インチのTABは正解だった。
やっぱり10インチは置かなきゃ無理。それだったらPCでいい。
10インチで主流のTegra2は動画的には残念な感じだったしなw
モバイル | Comments:0
(2011/10/20(Wed) 10:09:18)

メイン端末であるau機の機種編検討。
もうかなり前から検討してるが中々変えられない。

auの場合ガラケー(ガラパゴス=他と方向性は違うが進化が進んでいるのを指す)が微妙。
本来であればメインにはまだ信頼の置けるガラケーにしておきたいが
着うた周りの自由度が低すぎるなどの難点もある。

11夏モデルはスマートフォンの方で候補を検討したが、しいて言えばIS11SH。
携帯は出先で使うから手先で弄れるテンキーはやっぱり便利。
(そうでないときや単にAndroidだったらTABでもいいし)
ただ問題は2タッチに対応していない(対応ソフトが無い)ということ。
一応Wnn改造で対応できそうな目処はたったとはいえ、ちょっとね。
理想を言えばAtokが2タッチまで対応してくれることだけど、なさそうw

メイン側端末なのでFelicaは欲しい。
ワンセグと赤外線はどっちでもいい感じ。3D液晶はいらない。
解像度はWVGA以上ならそう困ることは無いと思う。
GPS、地磁気、モーション辺りのセンサーは欲しい。
ストラップホールと着信LEDはあったほうがいいかな。
防水はあれば越した事は無いけど、それだと非接触充電も欲しいね。

一応秋冬はWiMAX対応が複数出てくるというのでそこに多少の期待。
WiMAX自体は必要ではなくて(そこまで速度が必要になることが無い)
テザリングにも対応してる可能性が高いから。
ただうちの場合はぶら下がるのもスマートフォンレベルだから良いけど
PCぶら下げて遠慮ない転送量かけるのがいるのが困りどころ。
転送量を簡単にわかる(問い合わせられる)ようにしてもらったうえで
一部の異様に多い人たちレベルは+課金の仕組みにしてもいいんじゃないかなぁ。

auのスマートフォンはそれ以上にメールのシステムを見直すべき。
・3G回線からしか接続できない
・メール無料が適用されない
という組み合わせはどうなんだ。
3Gのキャパシティが厳しいっていうならせめてWiFi経由で接続できるようにすべき。
メールのために3G接続すれば、当然そっちに他の通信だって流れることになりかねないんだから。
(実際にはWiFi側が優先になって3Gは明示的に使用されるメールだけで済む、はず?)

今年はちょっと早いらしい秋冬発表を待って、それでも駄目なら安くなった在庫を探して検討、かなぁ。
モバイル | Comments:0
(2011/07/31(Sun) 18:32:08)

環境の復旧しなきゃということで続々と再インストール。
バックアップソフト入ってるのに問答無用で初期化されたからなぁ。
普通に考えたらdocomoショップ側で促すなり確認するなりするべきだと思うんだけど。
まあショップのレベルだからな所詮。

何時の間にやら非公開になってしまったアプリとかもあって面倒。
バッテリーウィジットはイマイチいいのが無いからまた自作かなぁ。

とりあえず自作アプリ関連を端から入れなおし。
どれも必要があって作ったアプリだから無いとちょっと不便なんだよね。
ついでなんでアイコンを適当に作ってつけた。
 Arcbird:ZIP先読み対応画像ビューワー
 SearchShortcut:Searchキー長押しでアプリ実行
 ZAlarm:ランダム再生対応アラーム
 LSMediaPlayer:CIFS対応メディアプレーヤー
 SimpleClockWidget:5x1対応時計ウィジット
うん、自分用だしいいけど、ネーミングセンスは無いねw

あとお仕事絡んでて名前は伏せとく…な2ch速報headlineビューワ。
一般ニュース系も見るんだけど、節操無く注目の物が集まる辺りは価値がある。
ざーっと出来事一覧を把握するのに使用したり。
芸能ニュースなんてそうでもないとまず見ないしなぁw

LSMediaPlayerはMP4しか対応できずでちょっとアレだったけど
エンコードを一部MP4に移行し始めたからこれから本領発揮かな。
DLNA経由も出来るんだけど、ファイル共有だけでいけるのはやっぱり大きい。
まあrootとればシステム側でCIFS対応してどのアプリでも、ってのも出来るんだけど。

JastWall(壁紙設定)は2.3.3で解像度取得周りに問題が出てるので要確認。
多分スライドしない設定が出来るようになったあたりの影響だとは思うんだが。
標準で用意されてる設定画面は非常に使いづらいので
何らかの手段は用意しないと。
モバイル | Comments:0
(2011/07/11(Mon) 15:45:25)

ようやくGalaxyTABが修理から帰ってきた。
まあようやくって言っても予定通り1週間~10日の範囲内ではあるんだが。
意外なほどTABを使ってる時間が多かったのか無いと結構困ることに気がついた。

とりあえず症状はSIMを見失う。
ふと気がつくとサービスとかがなしになってて、電話もメールも気がつかずになるという。
画面見て気がついて再起動→運良くSIM認識戻ると不在着信が大量に…。
2.3.3アップデートしたらちょっと収まったようなので様子見ていたんだが
ついに先日その瞬間を目撃してしまった。
GalaxyTABはSIMを起動状態で抜けるので抜き挿しと再起動する。
手に持って操作して一段落したタイミングでいきなりSIM抜いたときのメッセージが出て再起動。
再起動したときにはSIMの認識を失っているという状態。

これはどうしようもないということでdocomoショップ持込。
まあ修理送りにしてチェックしてもらうしかないよね。ということで修理依頼。

で帰ってきたわけだが、予想通り「現象再現せず、コネクタ交換してみました」
「修理のほうでは確認できずでショップでも戻ってきてから試したんですが問題ありませんでした」
「一応起動確認して頂いて、しばらく様子見てもらうということで…」
といいながらSIM入れて起動したら見事に現象発生w
窓口の姉ちゃん硬直w

他のSIMだと大丈夫みたいだし、SIMの問題の可能性が高いねぇ。
ということでSIM交換。
念のため再起動、挿しなおして再起動としてみたけど発生せず。
まあこれで解決すればよし、暫く見守るしかないかなぁ。

しかしまあ、分解検査だけで外装はそのままなわけだが
なんでそれなのに液晶保護シートをはがす必要がある?
なくなってたんで確認したらバックヤード確認しに行って
適当な袋に貼り付けた保護シート持ってきて「受け付けた日付のがありました(ドヤ」って言われてもね。
一回剥がしたのってどうやっても元通りにならないと思うんだけどな。
データ全消去は説明もあるし仕方ないけど、これはちょっと配慮足らないと思うわ。
所詮docomoショップだしなぁ、と思わなくも無いけど。(そういうレベルで期待できると思えない)
モバイル | Comments:0
(2011/07/09(Fri) 19:25:24)

輝度下げられるとはいえ最低でも暗いところじゃ眩しいなあ、と思ったら良いアプリ発見。
Screen Filterで眩しくないように出来る。
ただまあ、ガンマ下げてる感じでバックライトは大して変わってないのかぼけた感じにはなるんだけど。

単にアプリを実行すればON/OFFを切り替えられるんだけど
いちいちHOMEに戻ってとか面倒。
タスク管理系のアプリ呼び出せるのでもいいんだけど、これだけのために入れるのも…。
ということで現状では使ってない検索キー長押しに割り当て。
以前、検索キー長押しとかカメラキーとかに割り当てられるアプリがあったと思ったんだけど
何時ものごとく見つからなかったので。
面倒なのはアプリ選択画面程度で呼び出すのは定義だけだからね。

設定画面はLAUNCHARから呼べるアプリをアイコンと名前でグリッド表示。
この辺り簡単に取れるのは助かるな。
あとはSEARCH_LONGで呼び出せるActivityで選択してあるアプリを起動と。
汎用には作ってあるから他のものでも可。
まあ複数対応しようとしたら拡張は必要だけど、それってただのランチャーだしw
モバイル | Comments:0
(2011/06/08(Tue) 19:29:37)

自作アラームにウィジットを追加。
次のアラーム時刻が何時なのかわかるようにしておきたい。
まあステータスバーにもロック画面にもアラームがONなのは表示されるからわかるんだが。
ステータスバーの方はONなのはわかるが時刻がわからないのでそれ対応。
わざわざロック画面にするのもアプリ立ち上げるのも面倒だしね。

ZAlarm-widget.png

見た目としては基本はただのショートカットアイコンが置いてある感じ。
まあレイアウトは現場あわせだから良く見ると違うんだけど、それはまあ良し。
アラームをONにするとオーバーレイで次回アラーム時刻を表示する。
タップしたら当然アラーム設定起動。

ついでにアラーム音フォルダ設定も追加。
ファイル指定と違ってフォルダ指定なのでちょっと変更が必要。
通常はフォルダ選択したらそのフォルダ内を表示、だからな。
ボタンを追加して、表示中のフォルダを選択できるように。
まあ後はそう他の場合と変わらないので簡単に。
しかしまあ、設定画面はもう一杯一杯。
多分普通のスマートフォンじゃかなり操作不能な状態になるだろうな。
時刻設定の辺りだけ書き換えれば十分対応できるだろうけど。
モバイル | Comments:0
(2011/06/01(Tue) 18:42:42)

いまいち気に入る時計ウィジットが見つからなかったので自作。
AndroidのMarketって相変わらず目的の物が見つかりづらい。
多分全部見れば使えそうなのもあるんだろうなと思いながら。
でもやっぱりこの程度なら探すより作る方が手間が少ないというw

simpleclockwidget.png

物としては本当に単純に年月日時刻が表示されるだけ。
珍しいところとしたらサイズに1x5があるくらいか。
通常のスマートフォンは4x4エリアしかないから、1x4までのウィジットが多い。
でもそれだとどっちかに偏って微妙に見た目が違和感あるんだよね。
逆にそれで余る端を使って5x1とかもあっても面白いかもしれない。
ついでに複数サイズのテストに1x4も作った。収まらないので年は外したけどw

ちょっと困るのはHOMEの縦横が切り替わった際に1x1エリアのサイズが変わること。
縦用でデザイン設定しちゃうと横で微妙な見た目になりうる。
まあ縦横別にする機構はあるんだから横着せずに両方用意しろってことなんだろうけど。

今回はまあそれほど困って無いけど、この仕様どうなの?ってことも。
ウィジットが表示されてるかどうかの判断が出来ない。
タイマー動作の場合、サスペンドすれば通知が止まるのでそれは大丈夫。
ただ表示OFFだけどCPU動作中だと、ちょっと面倒。(一応方法はなくは無い)
一番の問題はアプリを起動してる場合など。
これ判断しようが無いのでウィジットが動作しっぱなしになってしまう。
細かく描画してるようなウィジットを置くと、CPU食われるし電池も食うだろうな。

内部的な対処としてはHOMEのonResume/onSuspendをウィジットにも通知するだけで良いと思うんだが。
ちょっとその話をしたら、メーカー純正ウィジットではそういう内部動作したりしてるらしい。
まあ組み込みの人が普通に考えたらそういう実装はするよね、っていうしかしGoogleの実装能力は…。
モバイル | Comments:0
(2011/05/23(Sun) 22:25:09)

イマイチ目覚ましにいいのが見つからないので自作。
というか、多分あるんだとは思うんだ。
ただAndroidMarketの使いづらさというか、多すぎて面倒になるというか。
この程度なら探す手間より作る手間のが楽だったり。
自分専用的に必要な機能入れられるし勉強にもなるしね。

ZAlarm.jpg

今回の要件。
・タイマーは複数設定できるように。
・個別にON/OFFできるように。
・1回と曜日指定繰り返しパターン。
・一定時間再生したら停止。
・設定は出来るだけ操作数を減らすように構成。
・アラーム音は指定フォルダ(サブフォルダ含むも有)からランダム。
といったところ。
上の方はアラームにありがちな要件だけど、最後のがね。
色んな曲を適当に鳴らした方がいいんだけど中々無い。
同じ曲だと飽きるし慣れるし。

現状は音量をシステム側のアラーム音量でコントロールしてる。
けどうっかりアラーム音量下げちゃったときに気が付かない恐れが。
とはいえ、逆に落としたはずなのに鳴り響くのもアレだし、どうだろう。

アラーム鳴動画面はスライドロック式にしてバックキー等も無反応にはしてある。
けど、結局の所ホームキーは無効に出来ないのでその対応が必要ではある。
ステータス表示にしてそこからと再度起動すればアラーム画面になるようにはしたが。

アラーム設定画面はボタンをベタに並べた形にしてる。
時/分をタップして入力画面に切り替わってSIPから入力してOKして…。面倒くさい。
分の方だって5分刻みより短いなんてまず設定しないし。一応+-1分できるようにはしてあるが。

実の所、アラーム音設定がなかったりする。
SDカード以下で直指定してしまってるんだが、この辺りも実装しとかないと。
Androidの場合ファイルセレクタは自己実装しないといけないからちょっと面倒。
まあ他のアプリで既に作ってあるから移植してくるだけなんだがw
モバイル | Comments:0
(2011/02/29(Mon) 07:07:50)

Androidの微妙に残念なところ。
Windows共有(SambaとかCIFS含め)からファイルを直接見れないこと。

一応rootを取ればcifsを使うことができるので対応は可能らしい。
けどそのためにrootを取らなきゃいけないのはなぁ、ということで他の方法を模索。

とりあえずJavaでもCIFSから取るのはライブラリがある。
じゃあそれで取得したのをMediaPlayerにPUSHしてやれば…。
しかしMediaPlayerはhttp等のストリーミングかローカルファイルしか対応しないという罠。
よし仕方ない、ローカルhttpで送り出してストリーミング状態に…。
今度はストリーミングだと概ねmp4しか対応しないという困った状況。
折角DivX(AVI)とかも再生できるのにローカルだけかよ、と。
(まあmp4もファイル次第で駄目な場合もあるので困ったもの)
そもそもストリーミングできるファイルじゃないから、といえばそれまでではあるんだが。

MediaPlayerが順次データを流し込めるなら(Stream系対応してれば)まだやりようはあったのに。
ただMediaPlayerのストリーミング対応は結構怪しげらしいから、なお危険な気もするが。

結局のところDLNA経由ってのが一番手っ取り早いのかもしれない。
とはいえGALAXY TABに標準で入ってるDLNAクライアントは微妙だし
サードで出てきたとしてもハードデコード再生対応したのなんて出てくるのかな。
MediaPlayerじゃ対応できないからもっと下層でやらなきゃいけないだろうけど
その場合今度は機種間の対応が結構面倒になるだろうし…。

やっぱりデフォルトでCIFS対応してくれてれば一番良かったんじゃないかと。
クラウド的動作が多いAndroidなのになんでこの辺りの動作はないんだか。
まさかGoogleを使わないローカルなんて知らない、とか言わないだろうなw
モバイル | Comments:0
(2011/01/26(Tue) 01:02:08)

GLALAXY TABの標準壁紙設定だと丁度いいサイズの画像でもぼけてしまう。
(らしい、というのは現状はそれが余り影響しない壁紙だから)
幾つかそれを行えるソフトはあるようだが、どうせだから作成。

リサイズ系はArcbirdで組んだのがあるのでそれを流用。
縮小系だけで拡大系のフィット計算がなかったのでそこだけ追加。
モード的には
・カットしてでも隙間なし
・余白を作ってでも全部表示
・リサイズなし
の3択で。
比率歪むとか論外だし。
必要があれば切り出して設定もありか。
それぞれの画面でどうなるかのイメージ含めて3画面分のイメージも。

ビューワーと違って設定前にかなり時間かけてリサイズしても良いからその点は楽。
とはいえ、設定変えたときなんかに時間かかりすぎるのは困るので
その場合は簡易リサイズもできるようにしておいた。

まだちょっと残ってはいるけどそう頻繁に使うものでもないし、こんなもんか。
とりあえずアイコンをどうにかしないと見分けづらくていかんな。
モバイル | Comments:0
(2011/01/08(Fri) 21:58:30)

なかなかこれっていうAndroid用の画像ビューワーが無いので自作。
WindowsMobile用のArcbirdを移植。
って言っても言語が違うから大雑把な構造を参考にするくらいだけど。
しかしネーミングはWMからそのままだが、紛らわしいなw

とりあえず実装した機能は
・ZIPファイル読み込み
・画面サイズにフィット表示
・オーバースキャン設定
・先読みキャッシュ
・しおり
・見開き(右開きのみ)
・起動時動作選択
といったところ。
機能の設定画面と、ファイルリスト/しおりリスト画面も製作。

初期段階では見開きはもっと後でやるかもしれない、くらいだったんだが
7インチ画面は予想以上に効果があって見開きでもギリギリいける。
(よく考えればT-01Aの4インチ縦と同じだけの高さが確保できる)
ただ問題になったのが縮小時のモアレ。
縮小アルゴリズムの問題だろうと、他のアルゴリズム探したけど見つからない。
どうやらAndroidには縮小アルゴリズム指定がないっぽい。
(WindowsMobileですらあったのに)

仕方が無いので幾つかアルゴリズムを実装してみた。
最近傍画素法は意味がないので外すとして以下辺りを順に。
・Bilinear
・Bicubic
・Lanczos
・平均画素法
BilinearとBicubicは基本なのでまずこれから。
次にBicubicの拡張的なアルゴリズムでいけてほぼ理想といわれるLanczos。
最後に縮小なら負荷も考えるとこれがベストといわれる平均画素法へ。

色々ミスがあって上手く動かなかったりもしたもののとりあえず全部OK。
ただJava上の実装なのでかなり重い。
それぞれのアルゴリズムは1出力画素を作るのに参照する画素数が違うわけだが
最近傍画素法が1、Bilinearが4、Bicubicが16、Lanczosが2の時に16となる。
ただLanczosは計算が重いのでBicubicの倍相当くらいか。
平均画素法は縮小比率によって変わってきて、縮小比率の2乗になる。
(2分の1なら2x2で4画素参照)

対モアレという意味だと平均画素法以外は大差ない結果。
他はどれも同程度にモアレが出てきついという感じ。
ただBilinearと同程度と試した中では早い部類ではあるけど、遅い。
Bilinearですら2秒程度かかっているので、Lanczosなんてお話にならない。
(まともに計測はしてない。がLanczosは1枚に20秒程度という遅さw)
先読みを使ってもちょっと常用は厳しいレベル。
そこそこに最適化はかけてあるんでこれ以上となるとNDKを使うしかないかも。
技術的に難しいわけじゃなくて、環境を作るのが面倒って言うのがまた微妙。
モバイル | Comments:0
(2010/12/12(Sat) 03:57:49)

結局発売日に機種変で入手してしまった。
まあずるずる遅らすと次が来て何時までも変えないとか
買ったらすぐ次が出て脱力とかいうことになるからなぁ。

しかし多分またそれほど人気はなくてそう遠くない先に値段崩れて
まともに払ったのが泣きたくなるような事になるような気はひしひしとするんだが。

・画面でかい
ブラウザ使っててもそれほど狭くて見づらいと感じない。
横にして1024あれば必要な範囲はまず見えるし、拡大も結構違和感ない。

・FLASHまともに動く
流石に完全に全てが、とまではいかないよう。
原因は不明なものの上手くロードされないのも中にはある。
とはいえ殆どの場合は動く。
ただまあ流石にあのMIXIの某アプリはかなり厳しい。
正直あれは機能的にどうってんじゃなくて実装がまずいはず。
ニコ動も同様だけど、あっちはいちおうギリギリ許容範囲内か。
高画質で見たいならPC出してくる、というのもあるだろうが。

・バッテリー長持ち
まあ使い初めだからまだバッテリー元気だってのもあるけど
設定とかでずっと弄ってるのに全然終わらない感じ。
残り30%とか「普通なら早く充電しなきゃまずい」という状況なのに
そこからどれだけ持つんだろうコレ。
ただし大容量だけに充電もやっぱりかかることには注意が必要。
あとケーブルが専用なのはやっぱり痛いね。

・ちょっと重い
見た目の印象より密度がある感じ。
でもベッドに寝転がって片手でホールドしててもそこまで手首には来ない。
端に指をかけた状態できちんと全体を支えられるのも効いてるのかも。
回転モーメントって意外と馬鹿に出来ないし。

・動画も余裕
PC用にエンコードしてるHDの動画を入れても何の違和感も無く再生できる。
やっぱりモバイル用に再エンコードは面倒でまず使わないからこれは便利。

・無線LANの接続早い
レジュームしてアプリすぐに動かしても通信出来る位。
まさか本当はサスペンドしてないんじゃないかと疑うほど。

・GPSは普通
まあ室内では測位できないのは当然。
屋外であればまず問題ないレベルで動いてた。

・カメラは別の観点で
ちなみに当然AFはあったけど画質に関してはまあ元から期待してない。
けどこのサイズとなるとプレビューが見やすい。

・結構スピーカーのパワーがある
口径が限られるから音質は仕方ないけど
結構な音量が出せる上にそれでも音割れみたいなのは無い。

まあ端末自体の不満点はほとんどないかなぁ。
唯一高かった(そしてそれに手を出してしまった)というくらいかw
Android案件で取り返すしかないな。頑張らないと。
モバイル | Comments:0
(2010/12/02(Wed) 07:56:38)

限界サイズのBluetoothイヤホンに新種。
ロジテックのLBT-PCHP04LBT-PCHP03。(AV Watch)
ちなみにそれぞれACアダプタ付(携帯売り場用とPC向け用)もある。

前回のバッファローのあれはイヤホン自体がお粗末過ぎたらしいので。
まあ今度のはちゃんとイヤーピースもそろってるし、そこはまだマシだろう。
2つまでとはいえマルチペアリングにも対応してるのは好印象。
意外と再ペアリングって面倒なんだよね。

03と04の違いはほぼ形状のみ。
03は途中にリモコン部が付く代わりにイヤホン部は最小クラス。
04はリモコンがないけどイヤホン部がちょっと大きい。
あと04はダイレクトにmicroUSB充電だけど04は専用ケーブル(2.5辺り?)でクレードル付き。

どっちかといえば、余計なもののない04のがいいけどサイズ的に色々当たって微妙だったりしないかなぁ。
まあ結局発売されてからどこかで試してみてのが無難だろうけど、どっか展示してくれよ。
モバイル | Comments:0
(2010/11/12(Fri) 16:06:58)

GALAXY Tabについて各所の内覧会やスマートフォンラウンジで色々出てきた情報。
国内版は色々と機能削減/制限されているという噂なのでざっとまとめ。

・WiFi adhocモードで接続できない
これは海外版でも同様らしく、そちらではroot取って対処可能だったとのこと。
ソフト的なところなのでこれはおそらく変わらないと思われる。
まあdocomo的にテザリングは徹底排除だから制限されているのは確定だろう。

・インカメラが自分撮り(標準カメラ)にしか使えない
プリインストールアプリでは他に使えるソフトがないというだけなのか
それとも何らかの制限処置を行っているのか。
ただ一説に言われる「ビデオチャットは帯域食われるからやらせたくない」という理由であれば
インカメラ自体を撤去するだろうと思われるので根拠薄。
他に有力な使いどころないし、GALAXY Sじゃ実際撤去されてるのでw
ちなみにBLOGGERS NIGHTではS(海外版)と同じコードで使えたそうだ。

・メインカメラのオートフォーカスがない
これはBLOGGERS NIGHTの担当者の発言より。
ただこれ撤去する意味がわからない。
単純に間違えてただけとしか思えないんだが、普通間違えるかなこんなのw

・テレビ出力機能がなくなっている
GALAXY SのTV出力がなくなっている件と混同してるんじゃないか?
GALAXY Tabには両方ドックコネクタからの出力で
ケーブル直のコンポジット出力とドック経由のHDMI出力がある。
HDMIの方は別として、コンポジットの方はメニューに設定がある。
これに関してはBLOGGERS NIGHTやスマートフォンラウンジではあるのが確認されている。

・BluetoothのHID
これは実は海外でもサポートリストに乗ってなかったりする。
一応BTの認証の方には入っているんだけど。
その辺りから推測するに、ハードとしては対応してるんだけど
何らかの問題で製品のサポートに加えられない状況なんじゃないかと。
バギーだったりしても「使えるかもしれませんがサポートはしてません」って言い張れる。
BLOGGERS NIGHTでも繋がったらしいが、海外版含めて相性問題が厳しいように見える。


まあ実際のところ影響あるとしてもTV出力くらいかなぁ。この機能はちょっと欲しい。
カメラはあのサイズでさっと取り出して撮る、とかないし
アプリからARとかならAFの意味ってそんなにない。
インカメラは、まあ個人的にはまず使わないだろう。
テザリングはしないし、HIDはキーボードも持ち歩くならPCのが早いしな。

概ね問題のあるのはなさそうだし、Android案件きそうだから早期に仕入れてもいいんだが
そうなるとどういうパターンでやるのが一番いいかだなぁ。
場合によってはauで新規→NMP、auのは現行の回線に持ち込む、ってのもありうるか。
あっちもそろそろ変えたいしなぁ。新しいのでいいのがないから新規0円の旧機種でいいしw
モバイル | Comments:0
(2010/11/08(Sun) 21:30:38)

SamsungのGALAXY Tabが正式にdocomoから発表。(docomo)(IT media)(ケータイ Watch)
発売は11月下旬予定って一部噂通り11/25予定なのかな。

Androidタブレットは現状の候補は3つ。
・Samsung GALAXY Tab
・東芝 Folio 100
・マウスコンピューター LuvPad AD100
国外を見ればもう少しあるけど
輸入までは考えてないので現時点では除外。
Folio 100は国内未発表だけど、遠からず出るだろうと判断。

どれもAndroid2.2(Froyo)なのは良い。
(Flashが使えなかれば使いどころが限られるので。自分の用途的に)
ただFolioとLuvPadはいかんせん重い。
サイズはこれくらいあっても見やすくていいかもしれないが
(そもそも荷物として移動するのは兎も角、携帯することは考えてない)
単に手に持って操作をするだけでも重いのは疲れる。
さらに問題はFolioがTN液晶らしいこと。
ちょっとの変化で色が変わるので出来れば避けたいところ。
(実際はうちにはTNはないので長期でみると慣れるかわからないが)
マウスに関しては東芝と色々似てるので同様じゃないかなぁ、と懸念。

GALAXY Tabのマイナス点としては
充電が専用のドック端子経由なこと。
iPhoneのコネクタ並みに小さければいいんだが
それでも専用ケーブルが増えるのが難点。

まあ後は値段だなぁ。
一応新規で4万強だそうだけど、今のから乗り換えるコスト含めてどうなるか。
モバイル | Comments:0
(2010/10/05(Tue) 15:33:10)

遅れてきたauが満を持して投入するIS03。(ケータイ Watch)
ただあまりインパクトはなかったようなw

色々と必要用件はそろえてきてる。
・Snapdragon 1GHz
・microSD(Max 32GB)
・ストラップホール
・3.5mmイヤホンジャック
・無線LAN/Bluetooth
・GPS
・カメラ(9.6M CCD)
などこれまでにもあったものから
・赤外線通信
・Felica(おサイフケータイ)
・ワンセグ
・FMトランスミッター
・ベールビュー(のぞき込み防止)
なんていう所謂ガラケーに限られていた機能まで。

気になるのは歩数計機能。
歩数計アプリは独自アプリで歩数計のデータを使用したAndroidアプリは現状作れない。
ということは加速度センサー使用ではなくて、専用の歩数計を入れてるということか。
これならサスペンドでもいけそうでいいなぁ。

まあFelicaに関しては事前予想の通りで
物が出ないとアプリが付いてこないという状況が良くわかる。
Suicaは兎も角、Edyは早めに対応してほしいなぁ。

残念なのはAndroid2.1だったこと。
2.2アップデートは予定してる、とは言うもののそれって何時になるの?とw
他機種での機能追加予定だって、いつになるやらって感じなのに。
まあこれはむしろメーカー次第でもあるんで、でもシャープw

この後他メーカー含めて秋冬新機種の発表が待ってる。
どうやらIS04~IS06まで(一説にはT、K、PT)あるらしいので期待。
まあauの方はガラケーのまま保持したい(なかなかいい機種がない)んだけど。
急ぐことでもないし出揃ってから考えようw
モバイル | Comments:0
(2010/10/04(Sun) 21:29:22)

GPSでHUD表示できるのないの?というのを聞いて試してみた。
要は速度を反転させて表示すれば窓に反射して普通に見えるって事だろう。

GPSからもらえる情報には速度があるので、それをそのまま表示。
といっても毎時マイルなので毎時kmへの変換は必要だけど。
(うっかり確認が忘れてて動かしてみたら半分くらいの速度で驚いた)

GPSからくる情報は大体1秒間隔。
その上速度はさらにその1秒前の位置との差分から計算だから
どうしても反応が遅れる。
市街地で加減速繰り返してると10km/hとか違ってたり。
(比較してる車のメーターも誤差があるんだが)
まあそもそも市街地で使っても余り意味無いんだけど。

逆に高速道路をボーっと走ってるときには使える。
速度変化はそれほど無いので多少の遅れは許容できる。
気が付いたら速度が上がってた/下がってたに気が付きやすい。
目線に近い位置に見えるからね。

ただまあ、フロントガラスって結構厚みのある多層ガラスだから
写る像が複数(それも斜めなのでずれて見える)なのでちょっと見づらい。
速度のみで最大限大きくしてるからまあ問題ないけど
細かい表現は無理だろうね、これ。
確かアフターパーツでHUD出してるのはフィルム貼ってハーフミラー化してたはず。
ただまあ、フロントガラスだと上部以外は違法になるけども。

さらに言えばフロントガラスの向こうが明るいと見えなくなる。
これも都市部の市街地では使えない理由。
田舎道だとか対向車は余り気にしなくていい高速道路だとマシなんだけど。

発展としてはオービス表示くらいかなぁ。
距離の計算とかはやり方判ってるから、位置情報入れるだけだし。
一定以上接近したら警告表示とかでいいだろう。
最低速度とか接近角度とかでフィルタはするべきかもしれんが。
ただオービスの経緯度一覧って更新されてるのどっかあったかな。
まあ自分が使う分には10個くらい調べればOKなんで構わないんだが面倒だ。
モバイル | Comments:0
(2010/08/31(Tue) 23:40:04)

携帯用にメール転送を構築。
単に転送するだけなら簡単な話だけど、返信出来るようにしたのがキモ。

まずPostfixはユーザー名+XXXでサブアドレスが使える。(Postfixに限らないけど)
+XXXという風に+で色々つけても+の前のユーザーに届く。
それを利用して、サーバーに着信したメールのFromをXXXに仕込んで転送する。
@はそのままだと入れられないから、普通にはありえ無そうなパターンと置き換え。
サブアドレスにしてるだけなので、返信すると同じ場所に届く。
なのでサブアドレスだったら、+以降を取り出して元のメールアドレスに転送する。

これでこちら側では仮想アドレスとのやり取りに見えるものの
返信などはそのまま出来、外からはアドレスが完全に隠蔽される。
新規とかでメールアドレスを入れる場合だけ、転送用にして入れる必要はあるけど。

携帯のアドレスなんかはそうそう変更できない(したくない)んで教えたくない場合があるわけだが
これで携帯同等(フィルタの問題はあるが)に使え、簡単に変えられるのが確保できた。
といってもそういう場合ってメールよりも電話番号だったりするんだけどなぁ(笑)
モバイル | Comments:0
(2010/07/21(Tue) 06:52:13)

T-01A用のパケット無通信自動切断ツール作成、AutoDisconnect。
まあT-01A以外で動かないわけではないと思うけど。

T-01AはRasEnumConnectionsでアクティブな接続が取れない。
そのせいでパケット通信が行われてるかのチェックが出来ない。
判りそうな人に問い合わせをしたりして色々と検討した結果
結局TCP全体の通信状態をチェックして無通信判断することに。
T-01Aってパケット接続中は他の接続不可だからまあそれで用は足りるのねw

どうせ通信時にしか必要ないので非常駐アプリで。
パケット接続と同時に起動、通信監視、一定時間無通信なら切断して終了。
デフォルトは1000ms間隔監視、60秒無通信で切断にした。
まあ必要なのはメールが着信した後くらいだからこれで問題ない。

あと追加するとしたら特定アプリ起動中に切断除外するくらいか?
クラス名以外でアプリ探すのは面倒があるから、アクティブって条件でも良い。
可能だけど特に必要だとは思わないからとりあえず放置。
多分ブラウザとかだと呼んでる間に切断されてうざいだろうけど
結構回線接続も早いからどうかな。
どちらにせよ、基本は無線LANだからな。メール以外はw
モバイル | Comments:0
(2010/07/05(Mon) 18:13:28)

A2DPがONになったらプレイヤーを起動して自動再生。
A2DPがOFFになったらプレイヤーを自動終了。
起動だけならAutoA2DPとかあったけど終了が無かったから作ったA2DPSync。

まあ非常に単純でA2DPの状態を監視して変化したら動作する非常駐アプリ。
今回はセットアップ用のCABパッケージと
インストール時に自動でシステムに登録するためのSetupDLLも作ってみた。
まあ今回みたいなのだと入れた後に1回実行するだけでいいんだが
Todayアイテムの場合更新が面倒だから、その事前検討をかねて。
大体判ったのでtdyRegStatusの次回更新時に入れよう。

使い勝手として非常に快適。
AutoA2DPと違ってBluetooth ON→A2DP ONは無い。
(この部分だけAutoA2DP使うのも有りだろうけど)
ただコレに関しては運用で十分カバーできそう。
T-01Aの挙動としては
・T-01AのBT ON→レシーバーONの場合、A2DPは自動接続されず再生ボタンでONになる。
・レシーバーON→T-01AのBT ONの場合、自動でA2DPがONになる。
という感じだった。
なので先にレシーバーをONにしておけばいいし、逆でもボタン一つ。
常にT-01AのBTをONにしておいて随時レシーバーを入れる運用だと面倒かな?
T-01AはBTがONだとメール着信で引っかかるのでそういう使い方しないからOK。

とりあえず現状使っているプレイヤーはS2Pだが
自動でレジューム再生が開始されるかがイマイチ条件わからなかったので
プレイヤー起動後にちょっと待って再生開始する機能もおまけで付加。
電源操作だけで大概問題ない状態に出来た。

よく考えるとコレ、A2DP接続できる機器がある状態でBluetoothONにすると
再生したいわけじゃなくても再生開始される危険はあるんだよねw
モバイル | Comments:0
(2010/06/16(Tue) 20:04:39)

無いなら作れ。有っても気に入らないなら作れ。
という訳でそう複雑でもないものはサクサクと。
GPS状態表示用アプリ、GpsState。
単機能アプリのお約束。タスクバーに乗っかります。
gps_state.png

要はGPSをONにして各衛星のシグナル強度をグラフ表示する。
グラフの緑は測位計算に使用している衛星で黄色は使用してない衛星。
GPSの文字は未測位は黒、2D測位で黄色、3D測位で緑になる。
グラフのスケールは10dB~30dB辺り。(10dB以下でもONなら2ドットになるようにしてある)
この辺り数値がどの程度にすべきか難しいんだけど、T-01Aの実測。
しかし見てるとやっぱりT-01AのGPS感度って余り良くもないね。
30dBこえれば実仕様には困らないからメーターいっぱいでOK、と。

ちなみにTodayアイテムにしないのは単に「そんなスペースは無い」から。
Todayはパッと見て即把握したい情報を並べとく場所で、そのためのスペースが最優先。
そう普段から使うものでもないGPS用にスペース確保するのはちょっと。
(そういうTodayアイテムは有るし。WVGAだと表示おかしいらしいけど)

マップ系アプリ立ち上げてGPS測位はまだかとイライラする位なら、これで確認。
意外と衛星は見えてるのに中々測位ロックできないのが良く判る。
後はランチャなんかに登録するのにアイコン作らないと。
むしろこれが一番難関なのはやっぱりセンスがないからorz
モバイル | Comments:1
(2010/06/06(Sun) 03:45:06)

最小限サイズのBluetoothイヤホンが出てきた。これは良さげ。
同じような構成のがSonyにあったけど、あれは国内来なかったしな。

Ver2.1+EDR Class2でA2DP、AVRCP、HSP、HFP対応と機能は一通り。
流石に小さいだけに連続通話が2.5時間なのと充電台必須なのが難点か?
充電台そのものはUSB(ただしコネクタは専用かもしれないけど)だから多少はマシだけど。
使用時間のほうはA2DPだとどうか?って辺りが気になる。(そう変わらないはずだが)

待受は60時間だけどこれは2.1の時のはず。
T-01Aも2.0だから実際はもっと短くなるんじゃないかな?
まあ余程のことが無ければ待受接続したまま待機ってないけど。
(T-01Aも同時接続制限でBTがONだとパケット使えなくなるしな)

お値段的にはまあまあ(店頭8000円くらい?)だし
見かけたら検討してみよう。
モバイル | Comments:0
(2010/05/24(Mon) 15:55:45)

恒例の新機種発表が各キャリア一斉にきた。
まあ以前よりちょっと遅くなったかな?前はGW明けすぐだったし。

検討はしてるものの中々決め手に欠けるメインの代替@auは今期も駄目っぽい。
まあ強いて言えばSnapdragon搭載のT004。
レスポンスもアップしてるみたいだし、概ね必要なものはそろってる。
んだけど、残念ながらカロリーカウンター(モーションセンサー)が無い。
ワンセグとか無線LAN対応は入るけどそれはどうでもいいし。

現状必要とするのは
・高レスポンス(機能切り替えと文字入力)
・おサイフケータイ(EZ FeliCa)
・Bluetooth
ぐらいな所。
あれば嬉しいかもしれないのは
・カロリーカウンター
・カメラの画質(出来れば手ぶれ防止)
・防水
・ワンセグ
・薄くて軽いとなお嬉しい
といった感じ。
LISMO周りとかはまず必要ない、使ってないし。
オープンアプリプレーヤーも全然使ってないのでどうでも。
この辺りはスマートフォン側で対応しちゃってる。

カロリーカウンターは欲しいけど、今期はほとんどないし前期はもっさり。
SnapdragonでKCP3になるんで秋冬には高レスポンス機が増えそうだからそこに期待かなぁ。

Softbankは見るもの無し。Twitter?アプリなんてどうとでもなるじゃん?
docomoはスマートフォンのラインナップが愉快なことに。
auでコレジャナイとか言われてたIS01の同型が出たのには笑わせてもらった。
T-01Bは予定通り。まあキーボードも静電タッチも要らない派としては微妙だが。
それ以外の所謂ケータイ端末については代わり映えしないなあという感想。
なんというか携帯業界全体が停滞して久しい
そりゃスマートフォンが勢いづくわな。
モバイル | Comments:0
(2010/05/18(Mon) 16:56:23)

デルの未発表WindowsPhone7機 Lightning (engadget)

ハードウェアとしたら理想かも。
キーボードは厚く重くなるくらいならない方がいい、っていう参照至上派だけど
こいつはそれほどの厚みじゃないし。(それでもT-01Aに比べれば1.5倍くらい)

スライドに関してはこれまでの経験でいくつか判ったこと。
通常縦画面で見ていて入力だけ横画面にするのは面倒になる。
見え方変わるしタイムラグがどうしても出るから。
あとスライドが閉まった状態でカチッと止まることも大切。
ばねでしっかり抑えるとか、磁石でくっつけるとか。
持ってるときにふらふらするとそれだけで不快感になる。
縦だとホールドが長いからふらつきはそこまでじゃないんじゃないかと期待。

まあ後はWindowsPhone7がどれだけ使い物になるかだなぁ。
マルチタスクが限定的なのと、自前でアプリ作って入れられないのが困る。
これに関しちゃまだこれからアップデートされてくだろうから見守るしかないが…。

一番の問題は国内に来るのかよ、ってとこだがな(笑
モバイル | Comments:0
(2010/04/23(Fri) 14:09:01)

T-01AのカメラがAFボタン押さないでシャッターだけだとAF効かせてくれないので対策。
AFを作動させてAFロックしたらシャッター作動。
という単機能アプリを作ってサイドボタンに割り当てた。
画面のシャッターボタンを乗っ取る手もあるんだけど
こっちは手動AFロック+シャッター用ということで。

元ネタは某掲示板に書き込まれていたスクリプト。
スクリプトのままだとちょっと、というのと一部改良を加えて。
いくつか安全策をとったのと座標の微修正。
それにAFロックできなかった場合はシャッターを切らないようにした。
それでも切りたい時は画面のシャッターボタンでいけば良し。

しかしこのT-01Aのカメラアプリ、連番の仕様がちょっと?
折角保存するのか確認を取るのにもかかわらず
連番はそれに関係なくカウントアップしちゃうってのはどうなんだろう。
何度か撮りなおしてると番号が飛ぶので後で見たときにう~んと思う。
まあ別段困るわけではないんだけど、考えなかったのかな?という疑問が。
技術的に問題があるようなことではないと思うんだけどね。
まさ内部的にはファイルは出力しちゃってて、その後削除してたりするんだろうか。
有り得ないことではないなぁ。
モバイル | Comments:0
(2010/03/13(Sat) 08:53:15)

引数付実行時に立ち上げるアプリを選択できるアイコン型ランチャー。
要はExecSelectのアイコン表示版。
なんかこんな物ばかり作ってる(汗)
ExecSelectIcon.jpg

付加機能としては
・設定を引数で変えることが出来る(とはいえほとんど役にはたたなかった)
・呼び出されたときの引数に変更、追加してパラメーターにできる
・タイムアウト実行、バー表示付(一定時間で選択されているアイテム確定)
・デフォルト選択設定(タイムアウトのために)
といったところ。

それ以外に関してはほぼExecSelectの設定を引き継ぐ形。
そのままiniを持ってきて動くようにしておいた。判りやすいしね。

よく判らないのは画面のタスクバー、メニューバーを除いた座標の取得。
SHSipInfoで取得してるがSIP有りと無しで範囲がちょっと違うし
メニューバーのサイズが良く判らない。
一応現状だとBottomにしてもSIP表示時にちょっとずれる程度にはなってる。
(正確にはメニューバー分ずれてるような気がするが、上下が同じ6.5.1だからOK)
モバイル | Comments:3
(2010/02/23(Mon) 23:03:13)

折角あるセンサーを使ってみよう第2段。
モーション操作でいろいろできる常駐アプリ。ActionControl_1.0.0
しかしあまり実用性がないのはまあ初めから判ってたさ(笑)

T-01Aにはモーションセンサーが搭載されている。
そのまま生のデータを取得することも出来るが
ドライバでデータを処理し、一定動作の発生として取得も出来る。
元々デフォルトの機能としてこれらを操作に使用できるようにはなってる。
が、割り当てられる機能が限られていたり常に動作してしまうので微妙。

ということで、任意の機能を実行できるように常駐アプリ作成。
ついでに操作アプリによって切り替えできるようにしてみた。
割り当てないときはモーションセンサーからの取得自体OFFにするので
状態がわかるように小さなマーク表示もつけた。

アプリの指定方法については他のアプリも参考に準備。
クラス名、ウインドウタイトル、exe名、アプリ名。
ウインドウタイトルは取得に時間がかかり半ばフリーズになるので
一応使えるようにはしてるけど非推奨。
exe名は意外と取得が面倒だった。
プロセス一覧取得して総当りチェックだからこれもあまり勧められない。
アプリ名はレジストリの現在のアプリ名の名前。
しかしこれは一体何処から出てくる名前なのかイマイチ?
今のところ完全一致にしてるけど、部分一致でもいいかもしれない。
現状は部分一致が必要と思わないのでそのままだけど。

実行できる動作に関しては、基本としてexeの実行。(パラメータ指定可)
ついでにキー発行と画面回転、Today表示を追加した。
どれもexe実行から行うことも出来るんだけど、これくらいは内蔵した方が楽。
キー発行は同時押しまでは対応してるけど順次押しは対応しない。
流石にそこまではちょっと面倒だったし(笑)

とまあ、一通り動かせるようになってふと考える。
どういう設定をすれば使いやすくなる?
とりあえず、カメラとビューワーの自動方向切り替えを入れてみた。
ついでにカメラをシェイクで終了できるようにしたりとか。
しかし後はイマイチこれはいい、っていうのはない。
更新/再読込みをシェイクにしてみたりしたけど、面白いくらいでしか…。
一番使えないのはチルトだろうな。あれはどうしようもないような(笑)
どういうタイミングかSortInchKeyが動作しなくなることがあるので暫らくチェックしよう。

設定画面は作ってないけど、使い物になりそうなら検討するか、くらい。
動作のおかしいSortInchKeyの設定画面と合わせてC#でサクッと作るか。
内部動作ものはC++(SDK)のが余程早いけど、UIはC#のが楽。
モバイル | Comments:0
(2010/02/12(Thu) 02:09:13)

ポケットの中で通話開始対策。IncomningCallLock_1.0.0
とはいってもうちでは遭遇したことないんだけど(笑)

初めはレジューム時にチェックして電話着信中ならロックとかしてたんだけど
どうにも電話着信中のフラグが立ってくれない。
ディレイさせればもしかするのかもしれないけど多少取ってみた所では変化無し。
というか、操作しないようにロックするのにそれが遅れてどうする、と意味がない。

よく考えたら、電話着信時って操作中でも一旦ロックしていいような?
OffHookを他に割り当ててるし、うっかりそのタイミングで来たら取っちゃうだろ。
ということで発想を転換。電話着信したらロックする、に変更。
まあこっちなら大して問題なく出来るわけで。

ただ今度は電話の着信でしか発動しないから他のトリガは別にやらないと。
まあ同じアプリ内で監視を増やすことになるわけだが。
メールに関してはmoperaUのPUSHならSMS着信を監視すればいいんだろうか?
まあメール着信時に多少変な操作したって別に問題にもならないんだが。
あとレジュームしそうなのってアラームくらいか?こっちもさほど問題じゃないなぁ。
とりあえず危険そうな電話着信だけは抑えたからあとは何か起きたら考えるか。
モバイル | Comments:0
(2010/02/06(Sat) 01:10:31)

WkTASKはタスク管理がイマイチなWindowsMobileで非常に有用なソフトだが
WM6.5での使用においてはそのままでは多少の問題点がある。
出来ればソフト自身の対応を期待したいところだが、ちょっと工夫すれば概ね問題なく使える。

まず、問題点について。
1.スタートメニュー及びその下層で×を押すと再起動しないと表示できなくなる。
2.WM6.5はタスクバーが透過するようになったが、アイコン背景が固定なので見た目が残念。
3.ロック画面になったときにも表示されたままになってしまう。
といったところが大きなところ。

まず1について。
これは単純にスタートメニューが単独のプロセスになったから。
これまでも「電話」を落としちゃいけなかったのと同様のケースなので
固有設定に「クラス名:MSSTARTMENU」で「×ボタンで閉じない」と設定すれば良い。
これに関しては他のタスク管理ソフトも同様で、うっかり閉じないようにしないと同じことが起きる。

次、2について。
WkTASKの表示は、本来表示されるアプリタイトルを隠した上でアイコンを並べている。
WM6.5においては透過ウインドウの作成が可能になったので(T-01AのWM6.1では出来てた可能性がある)
WkTASK自身がアイコン以外を透過して表示することは可能ではあるが
その場合には、元々表示されているアプリタイトルが邪魔になる。
これを避けるには壁紙とタスクバー背景から自力生成する必要があり結構面倒。
単に見た目の話なので、そういうものと割り切るか
タスクバー自体を固定色で半透過しないようにしてしまうのが手っ取り早い。

最後の3について。
単に想定されてなかったので常に表示されてるだけのこと。
ついでに言えばWM6.5のLockScreenはタスクバーが半透過固定なのでなおさら目立つ、という感じ。
これに関しては割と対応は簡単で、ロックしたら非表示にすればいい。
ロックの判断はHKLM\Software\Microsoft\Shell\LockScreenのActiveで判る。
WkTASKのウインドウは、HHTaskBar(タスクバー)の子ウインドウとして
WkTASK(アイコンの並ぶ所)、WkTASK_BT(バッテリー表示)、ActionBtn(閉じるボタンスキン時)
の3つがあるので、これらを表示/非表示切り替えすればいい。
ということで再構築用に置いておく。WkTASK_LockHide_0.1.0
非常駐ソフトでロック切り替えを検知して実行される。
僅かにタイムラグはあるものの、大きな問題ではないだろう。

ロック画面についてはもうちょっと柔軟さがあればなぁ、というのが本音。
というかまあ、要するに自分がボタン操作でレジュームしたときはロックの必要はないよってだけだが。
レジューム時にどういう理由でレジュームしたのかが判れば対応も出来るんだが…。
強いて言えば電話の時は判断つきそうだから出来るかもだけど、メールとかアラームはどうだろう。
消去法だとキリがなさそうなのが困ったところだな。
モバイル | Comments:0
(2010/01/18(Mon) 04:21:56)

WindowsMobileのGestureAPIに関する情報が少ないのと
GestureAPIで検索するとWindows7の情報が出てくる&似てるけど異なる部分があるのでメモ。

タッチスライドした場合のウインドウメッセージの発生順は以下になる。
WM_LBUTTONDOWN
WM_GESTURE(GID_BEGIN)
WM_GESTURE(GID_PAN) ←タッチ中繰り返し
WM_GESTURE(GID_END)
WM_GESTURE(GID_SCROLL)
WM_LBUTTONUP

またGID_PANについては連続する場合先頭にGF_BEGIN、末尾にGF_ENDが付く。
この二つは同時に付く場合もある。(GID_PANが一つのみの場合)
GID_SCROLLはゆっくりタッチした場合などに来ない場合がある。

陥りやすいミスとしてGID_XXXはwParamに入ってること。
Windows7だとGESTUREINFOのdwIDとなっているので要注意。
(もしかしたら改定されて今はwParamなのかも知れないがネット上だと上記がでてくる)
現時点ではGID_ROTATE、GID_SCROLLなどは定義されていない。
(WindowsMobile7でマルチタッチ用に定義が増えるのかもしれない)

・GID_PANでの処理
GESTUREINFOのptsLocationにタッチ座標がそのまま入ってくる。
(ptsLocationについては全て共通でタッチ座標が入ってると思われる)
画面をスライドさせたい場合などは前のGID_PANとの差分を取って処理するなど。

・GID_SCROLLの処理
こっちがちょっと複雑でptsLocationは最終のタッチ座標。
残りのデータはullArgumentsに纏めて入っている。
分解するためのマクロが定義されているのでこれを使う。
 GID_SCROLL_ANGLE(ullArguments)はスライドした方向を取得できる。
  GID_ROTATE_ANGLE_FROM_ARGUMENTでラジアンに変換できる。
 GID_SCROLL_DIRECTION(ullArguments)はARG_SCROLL_XXXの概ねの方向を取得。
 GID_SCROLL_VELOCITY(ullArguments)はフリックの速さを取得。
4方向のどれかで良いのならDIRECTION、斜めも必要ならANGLEを使う。
慣性スクロールなどが必要であればVELOCITYを使って処理する。
離したあともメッセージが続くということはないのでタイマーなどが必要。

また前後にWM_LBUTTONDOWN、WM_LBUTTONUPがあることの注意すること。
GID_PANでスクロールなどさせると意図せず範囲選択になってしまったりする。
この場合、タップ処理はGID_SELECTで処理すると良い。
ただし全てWM_GESTUREで処理してしまうと選択処理が出来なくなったりする。
選択が必要なアプリケーションでは、スクロール用のWM_GESTURE処理と
選択用の従来処理を切り替えられるようにする事を検討する。
なお、GID_SELECTは離してから来る。(即ちWM_LBUTTONUP直前)

GID_HOLD、GID_DOUBLESELECTでも先にGID_SELECTが来るので
切り分ける必要がある場合タイムアウト処理が必要なのはサンプルの通り。
モバイル | Comments:1
(2009/12/20(Sun) 14:14:22)

T-01AのWindowsMobile6.5アップデート(SP05)が出たので早速アップデート。
本当は何か使えなくなる危険考えて待とうかと思ってたんだけど
そうそう大きな問題は出てない感じだし、我慢できずに(笑)

全体としてはWM6.1に比べると僅かに遅い感じ?
同じリズムで操作すると追いついてこない感じがある。
ただ少し操作してると慣れてしまうくらいの差だとは思う。

特に致命的問題が出るソフトはない感じ。
数少ない、強いて言えばな問題が幾つかあるくらい。

SortInchKeyの設定で種類選択ドロップダウンが操作不能。
このドロップダウンは以前からドロップダウンが上手く出ず
項目が見えないってのがあったんだけど。
ただ上下キーで変更できてたのがそれも不能に。
まあini直接でもそれほどの問題ではないので、まあなんとか。

FileDialogChangerが何故か上手く動作しなかった。
入れなおしとかでも駄目で、他の設定後に諦め悪く入れなおしたら動いた。
良く判らないが動かないのは非常に厳しいので助かった。
駄目かと思ってArcbirdのgsGetFile直接使用を実装したのに意味なし。
まあC#からgsGetFileを直接使うっていうのは中々面倒なパターンで勉強にはなったが。

WkTASKは事前にX02T関連で聞いていた通りで
スタートメニューが独立プロセスになったらしい。
その為×ボタンで終了から除外しておかないと表示できなくなる。
あとはまあ、タスクバー表示がちょっと変わったので画面によってデザインに影響でてる。

微妙な差といえばGsFinderでドラッグ複数選択が出来るようになってる。
タップで選択していくとうっかり実行になったりするからこれは助かる。


レジストリ変更で場所を忘れてたのをメモ。

・未署名プログラムのインストール/実行時警告
HKEY_LOCAL_MACHINE\Security\Policies\Policies
0x101Aを0から1へ

・Todayの分割線非表示
HKEY_LOCAL_MACHINE\Software\Microsoft\Today
HidePluginSeparators=dword:1
モバイル | Comments:0
(2009/12/17(Thu) 23:04:16)

Todayプラグインを更新。

tdyRegStatus2.jpg

まずちょっとサイズが大きすぎたので高さを80から60まで縮小。
数字、On/Offは変えずにトレイサイズとアイコンだけ変更。
ついでにトレイの色を他のアイテムと近くして統一感アップ。

プログラム側では0もしくはOffのアイテムのアイコンをグレーに。
初めは内部的にグレー化して描画しようかと思ったんだけど
存外面倒なことが判ったのでパーツ画像にOff時を加えた。
なので仕様的にはOff時表示なのでグレーなのはこのスキンだからとなる。
Off時の数値の複数化も対応。
どうもやはりステータスによっては複数状態になってしまうようで仕方なく。
保持領域を可変化しなきゃいけなかったんで、他の情報も可変サイズ化した。
パスとかMAX_PATH(260Byte)が実サイズになったのでほんの僅かだけど使用減少?

これでとりあえずこのプラグインは一段落、かな?
次の問題は不在着信リストを一発で表示したいって所か。
電話アプリの一画面なんだけど直接の表示方法がわからない。
バルーンからだと表示されるんだからオプションなりなんなりがあるはずなんだけど…。
海外のフォーラムとかも探したけどやっぱり方法を探す質問はあっても回答がないような?
まあそこまで必要でも無いから現状の電話アプリ表示でも良いといえば良いんだが、イマイチ引っかかるな。
モバイル | Comments:0
(2009/12/01(Tue) 06:23:06)

WindowsMobileのTodayプラグインに初挑戦。
レジストリからステータスを読み込んで表示するプラグイン。
半透過で苦労させられながら作ってたのがこれ。

tdyRegStatus.jpg

元々は不在着信とメール未読の表示用として考えた物。
この関係で有名なのはtodayCompactなんだけど
W-ZERO3系列用で他機種だとレジストリ位置の問題でそのままじゃ使えない。
rlTodayとかtodayCompactが使えるようにレジストリ転記も考えた。
ただrlTodayは無駄に重い。これだけのために使うのは避けたい。
レジストリ転記も無駄な動作だしなんとなくスマートじゃ無い。
MortScriptを使うのだと幾つものソフトの組み合わせだから面倒だし
かといって転記するアプリ書くくらいならTodayプラグインでも大差なくね?と。

ただ、不在着信とメール未読だけじゃ幅がもったいない。
ということで無線LANとBluetoothのON/OFFを追加。
SMSはまず使わないので特に必要なし。
タスクは別に出してるので意味無いし。
構造としてはスキンのように自由に変更できるので必要なら設定書き換えるだけだが。

タップした時に実行するアプリも書き換え可能で
無線LANとBluetoothはwifictrlを呼び出して切り替えてる。

問題としては無線LANとBlutoothのレジストリ値がOFFでも単一じゃ無いこと。
一応単一環境では複数値にはなってないようなのでとりあえず一つで判断してるが。
モバイル | Comments:0
(2009/11/13(Thu) 21:10:52)

WindowsMobileのTodayプラグイン作成で嵌ったPNG透過描画関連。

・PNGを使えば透過情報を使える。
・SHLoadImageFileはPNGを読み込める。
・AlphaBlendで透過付き描画が出来る。
よし、簡単じゃん。 と思ったら甘かった。
トラップは
・SHLoadImageFileはPNGを読み込めるが、デバイスにあわせる仕様のため16ビットになってしまう。
・AlphaBlendで必要とするのはアルファチャンネル付き32ビットビットマップ。
よってそのままじゃうまくいかない。
まあSHLoadDIBitmapって手もあるのかもしれないが、PNGのが作りやすし。

というわけでネットの海を探し回った結果。
めるもでらさんの所でやはり同じ問題にぶつかった記事を発見。
ちょっと変形してSHLoadImageFileと入れ替え可能な関数を作成。

HBITMAP IFLoadImageFile(const TCHAR *pszPath)
{
 // interface 取得
 IImagingFactory* pImageFactory= NULL;
 CoCreateInstance(CLSID_ImagingFactory, NULL, CLSCTX_INPROC_SERVER,
          IID_IImagingFactory, (LPVOID*)&pImageFactory);

 // ファイル読み込み
 IImage* pImage= NULL;
 pImageFactory->CreateImageFromFile(pszPath, &pImage);

 ImageInfo imgInfo;
 pImage->GetImageInfo(&imgInfo);

 // ビットマップの作成
 bool bAlpha = (imgInfo.PixelFormat & PIXFMTFLAG_ALPHA)? TRUE: FALSE;
 HDC hBmpDC = CreateCompatibleDC(NULL);
 HBITMAP hBmp = CreateBitmap(imgInfo.Width, imgInfo.Height, 1, (bAlpha)? 32 :24, NULL);
 SelectObject(hBmpDC, hBmp);
 RECT rcBitMap = { 0, 0, imgInfo.Width, imgInfo.Height};
 pImage->Draw(hBmpDC, &rcBitMap, NULL);

 // 解放
 pImage->Release();
 pImageFactory->Release();
 DeleteDC(hBmpDC);

 return hBmp;
}
モバイル | Comments:0
(2009/11/10(Mon) 11:29:54)

使い始めて気がついた部分を修正。
full_slim_map.png
修正点は以下の通り。
・パネルのロックモード追加
・文字キーの位置修正
・スペースのサイズ修正
・その他レイアウト座標の間違い修正
・文字コード発行毎に文字種切り替えを行うように変更

ロックモードの追加は数字の連続入力がしづらかったから。
それ以外では連続は余りないので問題なかったんだけど。

文字種切り替えはアプリが切り替わるなどして入力モードが変わっているのに
SIP側の表示が追従しない事に関する対応。
本当はSIP側で入力モードの変更をキャッチして通知してくれたりすると良いんだけど。
まあ今のところそれで負荷になるような感じでも無いから良しとしているが。

結局横用のは作ってない。
画像までは作ったけどスクリプトが面倒。
記法が独特だから大変なんだが正直横で入力とかまず無いし。

アドエスのハードキーと比べてもそれほど入力の手間は変わらない。
入力自体がそれほど多く無いというのもあるが(笑)
ただ手探りは出来ないし、あえて小さくしてるから雑な使い方は難しい。
そういう意味では本当に使う人を選ぶ作りになってるかも。
まあ自分用に作ってるんだからそれで全然構わないんだが。
モバイル | Comments:0
(2009/09/29(Mon) 17:40:14)

T-01Aのモーションセンサーの使い方が判ったのでテスト。
もはやお約束のような水準器。

TG01Level.jpg
画像はX-Y 2軸表示モード。
画面を上又は下に向けた状態で45度以内の傾きで表示。
45度以上に傾けると垂直方向に従い4方向に画面方向を変更して1軸モード表示になる。
終了時はどの方向にしていても起動時の画面向きに戻す。
角度は1/10°表示だけどこんな精度はないです(笑)

補正に関しては補正をした時点の傾きを0とするように数値を削るだけ。
正直言って元々の数値が細かい値まで信用できないのであまり意味無い。

2軸モードの外周にある小さな点は傾きの方向。
中心近くだと微妙な方向が判りづらいので。
久しぶりに三角関数使ったら微妙に忘れてるところの多いこと。
この辺りの処理は何度も書いてるから少しやれば思い出すことは思い出すけど。

作ってみて意外と面倒だったのが反応の丸め方。
ダイレクトに表示するとプルプル動いてしまうので、ある程度細かい動きは丸めてしまう必要がある。
ただ、丸め処理で今度は動きがモッサリしてしまうので、その兼ね合いが。
まあ適当に考えただけの処理なのでもっとふさわしいやり方があるのかも。

今回は使わなかったけど、T-01Aのモーションセンサー系はもう一つジェスチャ機能もある。
シェイクとかダブルタップとかもこれだとメッセージとして取れるからアプリからは使いやすいかも。
画面方向も自分で判断しなくても方向をメッセージで貰えるし。
とはいえ正直あまり使う用途が浮かばない(汗)
むしろ照度センサーとUIキーの使い方が知りたい。
どっかから漏れてこないかなぁ。
ドコモ&東芝が公開してくれるのが一番だけど無視されたから無理だろうなぁ。
モバイル | Comments:0
(2009/09/27(Sun) 14:57:05)

 

Copyright © 混沌雑記帳. All Rights Reserved. [PHPウェブログシステム3 FLEUGELzネットマニア + 独自改造]