2011年12月23日金曜日

poor Gmail Notifier の通知をちょっとリッチにバージョンアップ


poor Gmail Notifier で Fromアドレス と 件名 が通知されるようになりました!



Gmailの仕様変更から、Liveview の 「Gmail for Liveview」が動作しなくなってしまい、対応をまっていましたが、どうやらバージョンアップは行わないとのことのようですね。

Gmail for Liveview
(This app is no longer supported, it uses an undocumented api to Gmail which changes constantly)





残念ですが、自力でなんとかするしかないかなと思った矢先、GmailのINBOXをFeedで取得できることを知りました。
http://code.google.com/intl/ja/apis/gmail/docs/inbox_feed.html#inbox

こうなったら、

Gmail着信→ブロードキャスト→poor Gmail Notifier で Feed 取得 →Fromアドレスと件名を通知

にするしか無いとなりましたので、ごにょごにょpoor Gmail Notifierをバージョンアップすることにしました。


 と言うわけで、設定画面がこんなことになりました。

タップすると入力ボックスでます。パスワードをいれるものです。

上記のAtomFeed ですが、基本認証ですのでパスワードが必要になります。

[at Your OWN RISK!!!]です。
※端末でOAuthしてごにょごにょを頑張ってみましたが結局どうしたら認証できるかわからずじまいでした。。。orz


パスワードが入力されていると、Fromアドレスや件名の取得を行おうとします。
入力がなければ、今までと同じ、Toアドレスと未読数の通知が行われます。


Gmail for Liveview のように細かい設定はできませんが、まぁこれで、通知とちょっとした内容確認にこまることはなくなります。


- 2011/12/30 リリースしました。 https://market.android.com/details?id=jp.ddo.dekuyou.liveview.plugins.gmail

2011年12月11日日曜日

Livevewアプリケーションを終了させないようにして切断されるのをできるだけ防止する。 その3

前回、
# Exempt oom killer 
sys.keep_app_1=com.sonyericsson.extras.liveview

を build.prop に記述して、LivewViewアプリケーションがAndroidにKillされないようにして運用してみました。
感覚でしかないですが結果切断率が減ったように思えます。
(周りの環境が無線だらけで物理的にだめだろうなーって時はやはり切断発生します。)

そこで、build.prod に記述するのは色々と面倒くさいので LiveviewSaverと言うアプリケーションにしてみました。

中身は setPropしてるだけです。(要ROOT

LiveViewSaver.apk

※ TwitTL2 FaceFBView2 SendSMS2 がinstallされていると、起動時にsetPropするようにしています。(すいません商売じみてて。。。。

2011年11月17日木曜日

Livevewアプリケーションを終了させないようにして切断されるのをできるだけ防止する。 その2

前回、Linux的にoom killer 対策をしてみましたが、なぜかPIDがコロコロ変わるので意味がありませんでした。

次は、build.prop に常駐HOMEアプリのように記述してみます。



# Exempt oom killer      
sys.keep_app_1=com.sonyericsson.extras.liveview 
こんな感じ。

さて、どうなることか、、、、、、



----
この設定で1日使ってみたところ、驚くほど切断がありませんでした。(日中1度だけ)
フリーズもなし。

ただ、電池がいつもより恐ろしく早く減りました。

。。。もうしばらくこの設定で様子見してみます。

2011年11月13日日曜日

Livevewアプリケーションを終了させないようにして切断されるのをできるだけ防止する。

以前
LiveViewアプリを事あるごとに起動させて、切断しても再接続する可能性を上げる
なんて事をやっていますが、今回はLiveviewアプリケーション自体、なかなか落ちないようにしちゃえと言う試みです。

Androidは、LowMemoryKillerって仕組みと、そもそもLinuxのOOMKillerってのでメモリが枯渇した場合でもシステムが落ちないようにしているようです。

で、Liveviewアプリケーションがシステムに終了させられると切断が起きる(と思ってる)

なので、とりあえずAndroid特有のLowMemoryKillerは、さておき、Linuxで同じみのOOM対策をLiveviewアプリケーション用に行います。

asb shell で端末に接続して、


#ps |grep com.sonyericsson.extras.liveview


で、LiveviewアプリケーションのPIDを探します。


app_81 2470 1224 128424 28672 ffffffff afd0c75c S com.sonyericsson.extras.liveview


今回のPIDは2470でした(当然起動するたびにPIDは変更されるので)


PID2470のOOM_adjの中身を書き換えます。


# echo -17 > /proc/2470/oom_adj


標準は4でした。上記コマンドで-17に書き換えます。


以上で知識ベース上ではLiveviewアプリケーションがOSに終了させられることはなくなったハズです。

これで様子を見てみます。






2011年10月30日日曜日

リストバンド用アダプターが届きました。

リストバンド用アダプターが届きました。



□商品名:Clip watch clip MN800
□数量:1
□商品合計金額:¥315      
□送料合計金額:¥680
□手数料合計金額:¥525
□お支払い合計金額:¥1,520
梱包はこんなにでかいです。無駄にでかい。



日本のソニエリストアに注文したので当然日本版のリストバンド用アダプターです。




海外版(? 10年の11月発売前に予約で海外から買ったやつね)のLiveviewに装着。
問題なく装着できます。
日本版のアダプタのほうが、高さがあります。

日本版のリストバンド用アダプター、びっくりするくらい本体が取れないです。
硬い。
きっと、落下防止なんかも含めての処置だとは思いますが、充電するのに本体外さないといけないので辛いですね。
右下をこじって外しておいて、左下をこじるのが現状の外し方です。(海外版は右下こじるだけでとれましたね。

ちなみに海外版のアダプタの爪、折れたのは右下です。見えるかな?






2011年10月26日水曜日

リストバンド用アダプタの爪が折れた。

去年の11月から時計として愛用しているLiveviewですが、先日ついにリストバンド用アダプタの爪が折れてしまいました。
最近なんだかよく外れるなーとは思っていたのですが。。。。。 
なにはともあれ、リストバンド用アダプタがないと使えないのでソニエリに問い合わせしてみたところ
リストバンド用アダプタはソニー・エリクソン ストアで 部品として販売しております。 
メールでお問い合わせいただいたとこと、大変恐縮でございますが 部品のご注文はお電話でのみ承っております。 
ご多用中のところ誠に恐縮ではございますが、ソニー・エリクソン ストアお客様ご相談センターまで、お電話でご連絡いただければと 存じます。 
<ソニー・エリクソン ストア お客様ご相談センター> 
フリーダイヤル 0120-336-595   
※携帯電話、PHSからもご利用いただけます。    
一部のIP電話からは 048-967-7535(有料) 
営業時間:     平日 10:00~18:00 
     土・日・祝日 10:00~17:00  

なお、MN800のリストバンド用アダプタは一つ\315(税込み)です。 またお支払いは代金引換のみとなります。 何卒ご了承ください。
だそうです。 よかった。さっそく電話しよっと。 。。。送料なんぼ取られるんだろうな。。

2011年8月19日金曜日

Gmailの通知 (一時凌ぎのpoor Gmail Notifier) その4

Marketに公開しました。
https://market.android.com/details?id=jp.ddo.dekuyou.liveview.plugins.gmail

どうやら Gmail for Liveview が動かなくなった原因は、Official Gmail のVersionが2.3.5になり、
この2.3.5からはセキュリティの問題でGmailのデータが見れなくなったのが原因の様です。

実際データが取れるかを色々試してみましたが、やっぱ取れませんでした。

Help forum でも、話題になっていますね。 http://goo.gl/90GrJ

これはGmail側がデータ見せてくれない限りどうしようもなさそうです。


そんなわけで、ブロードキャストから取得できるのは未読数と対象のアカウントのみなので、しばらくは poor Gmail Notifier で行くことになりそうです。

2011年8月16日火曜日

Gmailの通知 (一時凌ぎのpoor Gmail Notifier) その3

Gmail for Liveview の不具合は、Googleアカウントを一度削除すると、動くようになると言う情報を見かけたけど、アカウントを4つも設定しているので、面倒くさくて有り得ない。

今、Poor Gmail notifier でとりあえずできそうな改善はなんだろなーと、extrasを吐くようにしてログを眺めてみた。

08-16 21:24:55.440: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): Gmail onReceive : android.intent.action.PROVIDER_CHANGED
08-16 21:24:55.440: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:count:2
08-16 21:24:55.440: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:account:dekuyou@gmail.com
08-16 21:24:55.440: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:tagLabel:^^unseen-^iim
08-16 21:24:55.440: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:getAttention:true
08-16 21:24:55.440: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:getAttention:true
08-16 21:24:55.460: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): GmailPluginService onStart
08-16 21:24:55.490: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): Announce sent to LiveView
08-16 21:25:44.708: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): Gmail onReceive : android.intent.action.PROVIDER_CHANGED
08-16 21:25:44.708: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:count:1
08-16 21:25:44.708: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:account:dekuyou@gmail.com
08-16 21:25:44.708: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:tagLabel:^^unseen-^iim
08-16 21:25:44.708: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:getAttention:true
08-16 21:25:44.708: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:getAttention:true
08-16 21:25:44.718: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): GmailPluginService onStart
08-16 21:25:44.738: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): Announce sent to LiveView
08-16 21:27:10.322: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): Gmail onReceive : android.intent.action.PROVIDER_CHANGED
08-16 21:27:10.322: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:count:0
08-16 21:27:10.322: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:account:dekuyou@gmail.com
08-16 21:27:10.322: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:tagLabel:^^unseen-^iim
08-16 21:27:10.322: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:getAttention:false
08-16 21:27:10.322: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): extras:getAttention:false
08-16 21:27:10.322: DEBUG/jp.ddo.dekuyou.liveview.plugins.gmail(14612): GmailPluginService onStart

どうもアカウント毎にcountが動いていっていることに今更ながら気づいたわけです。
あと、getAttention は未読がなくなったらやっとfalseになるとか。

と、いうわけで前回のCountと今回を比べて、増えていれば新着、減っていれば既読の通知と判断してLiveviewへの通知制御を実施するようにしてみました。

新着判定がわかれば、対象のアカウントのGmail読みに行ってTitle取得してと思ったのですが、GmailのProviderが無いからコンパイルできないよとか言う状況に現状ハマっているのでとりあえずここまで。。。。


2011年8月14日日曜日

Gmailの通知 (一時凌ぎのpoor Gmail Notifier) その2

Gmailの通知を簡易的に行えるようにしたわけですが、アイコンがSoftbankメール通知のままだったり
、誰からのメールが着信したのかすらわからなかったり、
更には、母艦でGmailを既読にしたら通知されたりと、さすがに突貫で作っただけにいろいろ使いにくかったりするので、ちょっと修正してみました。


  1. アイコンの変更。やっぱり赤いラインが入ったアイコンじゃないとGmailきたぞって雰囲気にならないので
  2. 着信したアカウントを表示





これならなんとか使っていけるだろう・・・・


Gmailの通知 (一時凌ぎのpoor Gmail Notifier)

最近Gmailのアップデートで、Gmail for Liveview が正常に動作しなくなったようです。
こうなるとGmailの通知がされないわけですが、この状況、思った以上に不便。

という訳で、とりあえずGmailの着信があったことだけ通知する、poor Gmail Notifier を急造しました。



これで、しばらくは凌げるかな。。。。。


2011年8月12日金曜日

落下対策

Liveviewはちょっと力を加えるとアダプタから外れます。
最近日本版が発売されて、落としてなくしたなんてつぶやきもたまにみれるので
以前からの落下対策を備忘録として載せときます。

http://twitter.com/#!/joeodagiri/status/24695542114156545

日本版Liveviewはアダプタの裏が穴開いていないのでマジックテープは厳しいかもですね。

私はずっと紐でくくっていて、何回落下を免れたかわかりません。

2011年7月6日水曜日

壊れた→修理した→また壊れてハンダ付けした

今日、お昼間にまた右ボタンが効かなくなりました。
落としたとかではなく、普通に利用していて、、、、、、

先日ハンダ付けしたとき、ちょっと不安だったんですよね。。。。。
それが、ぽちぽち利用していたらハンダがとれてしまったんでしょう。。。

ということで先ほど2回目の開腹となりました。

手慣れたもんでメキメキと周りをひっぺがしてぐいっと下側を引っ張ったら左側と下側の配線を引っ張ってしまいました。
慣れても、慎重にやるべきですね。
幸い、再度ボタンの根本をハンダ付けして動作確認が取れました。

なんとか次機種が出るまで頑張ってほしいもんです。。。。(出るのかどうかもわかりませんが。。。。

動作確認取れたら、バキバキと閉めて完了です。

次はハンダが取れないことを祈ります。(だいぶん盛ったし今回は)





2011年7月3日日曜日

右ボタンが物理的に壊れた→修理して動くようになった。

Liveviewを腕から外した際、不覚にも床に落下させてしまいました。
その結果、右ボタンがHITしたのか、右ボタンが反応しなくなりました。


発売が決定した2010年11月、Expansysで迷いもなく予約し入手。それ以来、毎日利用してきただけに、非常にショックでした。

現象としては、既出のボタンの剥離かと思われましたので、分解してハンダ付けすることにしました。

と言うわけで早速半田コテ購入


半田ゴテをさわるのは10数年ぶりです。

で、Liveviewの分解
右のボタンに精密ドライバのマイナスを差し込み、こじあげていきます。
こじ開けるのは、Liveviewの上側と右側のみ、左側と下側は配線があるので危険です。
※写真に写っている普通サイズのドライバはこじ開けた部分固定に使っています。


ガンガン開けていきます。

ある程度開けると、下側がカクっと開く瞬間があります。

ぱっくり開きました。

右ボタンのスイッチが基板に4箇所、半田付けされているのですが、これの上側2箇所が剥がれていました。(凄く微妙なのできっとそうだという思い込み)



ハンダ付けして動作確認。

問題なさそうなので、閉めます。


ドライバを突っ込んだ部分はガタガタになりましたが、使えてなんぼなので問題なしです。

ちなみに、今回の落下で
・半田ゴテと半田 1200円
・こじ開ける際に左親指にマイナスドライバを突き刺す
と言う代償を払いました。

Expansysだと送料込みで6000円ちょっと。
Sony Ericsson store だと7980円。

1000円ちょっとでもとの生活を取り戻せたのは幸いです。


ま、大切に扱わないとだめですね。ハードもソフトもw

2011年6月19日日曜日

Softbankメールインストール端末でSMSの通知 その4

その3で、受信したメッセージの電話番号がコンタクトリストにあった場合、その名前を出す改修をおこなって、リリースせずにテストしていましたが、ひょんなことから、リリースしました。

先日、このSoftbankメール通知を利用しても全く通知されないと言うお問い合わせをいただいたのですが、その端末が005SHでした。
知らなかったのですが、この端末はsoftbankメールが標準でインストールされており、優先設定もないそうです。

実際、端末をさわれるわけでもないので、どうなっているのかさっぱりなのですが、この端末に対応できたらいいなな変更をちょっと入れてリリースしました。
その時は名前の事はすっかり忘れていました。。。。

結局、005SHの通知は動かずでしたが、とりあえず端末が手元にない以上、どうしようもありません。

ところで、Softbankメール通知 が利用されている端末は、005sh や ガラパゴス などが数台あるようです。(デベロッパーダッシュボードで見れる)
この方たちはどういう状況なんだろう・・・? と気になるところです。

2011年6月12日日曜日

Softbankメールインストール端末でSMSの通知 その3

Softbankメール通知 for Liveview を作成してから、LiveviewってMMSの通知がとてもpoorなことにいまさらながら気づきました。
なにやら「Messageに移動」と書かれており、2行目に件名がちょろっとでてるだけ。

これなら、Softbankメール通知 for Liveview を常用した方がいいんじゃないかと思ったりしたわけですが、Softbankメール通知 for Liveview は、こっちはこっちでFromとして電話番号がそのまま出たり(電話番号の人の名前は出ない)したり。。。。。。

と言うわけで、Softbankメール通知 に電話番号の場合、アドレス帳から一致する電話番号の名前を取得して置き換えるMethodを追加してみました。

こんな感じ↓

private String getName(String phoneNo) {
if(phoneNo.indexOf("@") > 0){
return phoneNo;
}
String ret = phoneNo;
String[] proj = new String[] { Phone._ID, Phone.DISPLAY_NAME,
Phone.NUMBER };
Uri _uri = Uri.withAppendedPath(Phone.CONTENT_FILTER_URI, Uri
.encode(phoneNo));
Cursor _cursor = getContentResolver().query(_uri, proj, null, null,
null);
if (_cursor.getCount() > 0) {
_cursor.moveToFirst();
ret = _cursor.getString(1);
}
_cursor.close();
return ret;
}

まだ書いただけでテストできてないので、公開はまたいずれ。。。。。

2011年6月6日月曜日

SendSMS 2 Plugin For Liveview の要望対応でちょっとした改修

SendSMS 2 Plugin For Liveview はメッセージの設定件数が10件だったのですが、ご購入いただいた方から10件以上欲しいとメッセージを頂きました。

ので早速対応。http://goo.gl/i7jFS

v2.2 で設定できるメッセージの件数が15件になりました。

実は、Liveviewの設定画面で動的に画面表示する方法の実装に悩んでおり、本当は可変でメッセージを設定(端末の限界まで増やせる)ようにしたかったのですが、時間がかかりそうなので今回の暫定対応です。

また、v2.1 のときは(Free版もそうだけど)、メッセージを設定していない番号もリスト表示されていましたが、今回その表示を飛ばすようにしてみました。

個人的には、今回メッセージを設定していない番号を表示しなくしたことで、ちょっと使いやすくなったかなと思っております。


しかし、開発のたびにinstallしてメッセージを設定するのが面倒くさいです。。。。。

2011年5月31日火曜日

Softbankメールインストール端末でSMSの通知 その2

結局前回のごにょごにょから、未取得のメッセージ に関してはなにもできずですが、とりあえず現状の物をマーケットに公開しています。

今回ポイントとなったのは、
  1. Softbankメールの intent-filter の Priority が 500 になっている ⇒ 当アプリでは1000に設定してSoftbankメールより先にブロードキャストを取得する。 
  2. content://mms から取得するsubjectはISO8859_1"でデコードする 
くらいでしょうか。。。。

当方の環境の都合でSMSのみテストしています。(もしくはメーッセージアプリのMMS着信)
S!メールの着信時の動作は想像で作成していますので、動作報告などいただけるとありがたいです。

アプリは、こちらからどうぞ
https://market.android.com/details?id=jp.ddo.dekuyou.liveview.plugins.smail

2011年5月27日金曜日

Softbankメールインストール端末でSMSの通知

Softbankメールインストール端末でSMSの通知は、S!メール優先設定をしていると、ブロードキャストをSoftbankメールアプリにabortbroadcast()されてしまって、Liveviewは反応できません(LiveviewどころかすべてのSMSアプリが反応できない)

すでに、巡回式でSoftbankメールインストール端末でのSMS通知アプリはありますが、あくまでブロードキャストでの通知アプリをつくってみたいと思います。
(そういや今までSandbox型のアプリしかつくってなかったし。。。TwitTLもLiveFBviewもSendSMSも・・・・通知が目玉のガジェットなのにね)



と、言うわけで、ごにょごにょとブロードキャストレシーバを用意して、Softbankメールよりも先にブロードキャストを取得して。。。

SMSの通知できたぞと。よしよし。。。。。。


とやっていて気づいたのですが、「未取得のメール」などMMSを自動取得しないパターン。
「未取得」の状態で通知バーに通知でてるんですが、この時になにかブロードキャストがあるのかと思いきや、今のところ拾えるのかわかりません。

あと、私の環境では、SoftbankメールでMMSが取得できない(APNがごにょごにょなので)ので、MMS受信時の挙動を確かめることができません。。。

うーん。未取得だけでも通知できたらなぁ。。。。。

無念。

その他にも、onStart() が一度もLiveviewに呼ばれる前に、ブロードキャストを受信してしまった場合、mLiveViewAdapter がまだ設定されていなくて、落ちるなんて問題もあります。
Liveviewに呼ばれて以降、もしくは一度落ちて以降はmLiveViewAdapter に値が入っているようで、なんとなく動きます。

うーん。うーん。

やはり無念です。

2011年5月12日木曜日

SMSのQuick Reply ⇒ 「SendSMS Plugin For Liveview」 作りました。

サラッと、作ってみました。
割り切り仕様で、受信した最後のSMSの送信者に対して、メッセージを選択して送信します。

マーケットで公開中 ⇒ http://goo.gl/kkJRZ


SMSの送信部分は事前に調査していた通り

SmsManager smsManager = SmsManager.getDefault();
smsManager
.sendTextMessage(
phoneNo,
null,
message, null, null);
で簡単にとんで行ったのですが、このままだと送信の記録が残ってませんでした。


ContentValues values = new ContentValues();
values.put("address", phoneNo);
values.put("body", message);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);


 としておかないといけないんですね。

2011年5月11日水曜日

SMSのQuick Reply が欲しくなりました。

SMSのQuick Reply が欲しくなりました。
母艦を見れない時でも、通知を確認できるのが便利なLiveviewですが、確認したから一言返信したいって場合に返信できない状況(母艦は触れない)だと、非常にもどかしい。

こうなったらアプリ作るしかないなと言う事で調査開始。
とりあえず、SMSの対象者一覧を取得してみました。


Uri uriSms = Uri.parse("content://sms/inbox");
String columns[] = new String[] { "distinct address" };
Cursor c = getContentResolver()
.query(uriSms, columns, null, null, null);
c.moveToFirst();
CharSequence[] list = new CharSequence[c.getCount()];
String result = "";
for (int i = 0; i < list.length; i++) {
String[] proj = new String[] { Phone._ID, Phone.DISPLAY_NAME,
Phone.NUMBER };
Uri _uri = Uri.withAppendedPath(Phone.CONTENT_FILTER_URI,
Uri.encode(c.getString(0)));
Cursor _cursor = managedQuery(_uri, proj, null, null, null);
if (_cursor.getCount() > 0) {
_cursor.moveToFirst();
result += _cursor.getString(0) + ":" + _cursor.getString(1)
+ ":" + c.getString(0) + "\n" ;
}else{
result += c.getString(0) + "\n" ;
}
_cursor.close();
c.moveToNext();
}
c.close();
こんな感じで取得できるようなので、あとは対象選んで定型句選んで送信ですね。

しかし、
String columns[] = new String[] { "distinct address" };

こんなんアリかよって感じですね。。。。。

2011年5月3日火曜日

LiveViewアプリを事あるごとに起動させて、切断しても再接続する可能性を上げる

LiveViewは、LiveViewアプリが起動していないことにはペアリングされても、アプリとして接続されません。
しかし、普通のServiceアプリであるLiveViewアプリは端末の状態によっては、ちゃんと動作していない状態になるようです。
これを、起動させるアプリとしてLiveWareマネージャがあるのですが、これはあまり仕事をしてくれているようでは無いです。

そこで、AutomateItを利用して事あるごとにLiveViewアプリを起動させるようにします。(xdaにやればちょっとは幸せになれるかもみたいなことが書いてあったので。)
しかし、それだとLiveViewアプリがいきなりフォアグラウンドになって欝陶しいです。




















しかし、よくよく考えるとLiveWareマネージャから起動されるLiveViewアプリは一瞬画面が切り替わりますがすぐに消えます。
これは、きっとINTENTの発行先が違うのだろうと思って、調べてみると「com.sonyericsson.extras.liveview.settings.BootLauncher」にIntent発行している模様。

AutomateIt は、アプリケーションの通常起動しか指定できないので、上記BootLauncherを呼ぶことができません。
そこで、
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Log.d(this.getClass().getName(),"LiveViewHelper Main!");
// パッケージ名, クラス名をセット
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.setFlags(0x10000000);
intent.setClassName("com.sonyericsson.extras.liveview",
"com.sonyericsson.extras.liveview.settings.BootLauncher");
// アプリを起動
this.startActivity(intent);
// 自身の終了
finish();
}
な、中身のアプリを用意。AutomateItからこのアプリ(LiveViewHelper)を介して、「com.sonyericsson.extras.liveview.settings.BootLauncher」を呼び出すようにしてみました。

AutomateIt の設定はこんな感じ


効果はどのくらいあるか定かではありませんが、とりあえずコレで様子見です。


----
2011/12/11
LiveViewHelper.apk



2011年4月25日月曜日

GingerBread だと、ペアリングを覚えてくれない

何故か、GingerBread(私の場合、DesireHDのCyanogenMod7)だと、ペアリングを覚えてくれない。

いろいろ調べているとBluetoothをペアリングした際に設定されている設定値に異常がある様子。
その設定値を直接修正すると、ペアリングの度にキーを聞かれることはなくなった。
(Xperia arcの方にこの件伺ってみたところ問題なくペアリングされていると言うことなので、arcはOSに何らかの対策がはいっているのかなと思われます。)

Liveview ペアリング問題
# cd /data/misc/bluetoothd/XX:XX:XX:XX:XX:XX
cd /data/misc/bluetoothd/XX:XX:XX:XX:XX:XX
# ls -l
ls -l
-rw-r--r--    1 bluetoot bluetoot       216 Apr 20 10:07 classes
-rw-r--r--    1 bluetoot bluetoot        79 Apr 21 17:08 config
-rw-r--r--    1 bluetoot bluetoot       226 Apr  6 14:59 features
-rw-r--r--    1 bluetoot bluetoot       336 Apr 21 17:38 lastseen
-rw-r--r--    1 bluetoot bluetoot        84 Apr 21 17:45 lastused
-rw-------    1 bluetoot bluetoot       111 Apr 21 17:45 linkkeys
-rw-r--r--    1 bluetoot bluetoot        55 Apr  6 07:44 manufacturers
-rw-r--r--    1 bluetoot bluetoot       158 Apr 20 10:07 names
-rw-r--r--    1 bluetoot bluetoot       221 Apr 21 17:37 profiles
-rw-r--r--    1 bluetoot bluetoot      1272 Apr 21 17:45 sdp
「XX:XX:XX:XX:XX:XX」はそれぞれの端末のmacアドレス?

linkkeys
# cat linkkeys
cat linkkeys
00:0D:FD:2D:10:88 973688344CA275E54C6373934C2FEE8C 0 4
6C:23:B9:9A:E7:7D 1FDBC63985CDAEA2E94192154EA41409 4 -1
「6C:23:B9:9A:E7:7D」がLiveview。
4 -1 はおかしいらしい。
これを
6C:23:B9:9A:E7:7D 1FDBC63985CDAEA2E94192154EA41409 0 4
に書き換える

電池の減りが早い対策

Xperia x10 mini で利用していたときは、2日くらい電池が持ったのに、DesireHD で利用すると5時間と持たない。

その対策でBluetooth関係の設定ファイルを眺めてみた。

-DesireHD CyanogenMod6,7(/system/etc/bluetooth)
+Xperia x10 mini 2.1(/system/etc/bluez)

audio.conf
 -# Do not require master role for incoming connections
 -Master=false
 +# Switch to master role for incoming connections (defaults to true)
 +#Master=true
main.conf
 -DiscoverSchedulerInterval = 0
 +DiscoverSchedulerInterval = 20
 -# The link policy for connections. By default it's set to 15(0x000f) which is
 -# a bitwise OR of role switch(0x0001), hold mode(0x0002), sniff mode(0x0004)
 -# and park state(0x0008) are all enabled. However, some devices have
 -# connection stability issue or fail to setup SCO when the link is in park
 -# state, which requires park state bit cleared.
 -DefaultLinkPolicy = 7

現状、main.conf のみをDesireHD CyanogenMod7 に反映して、だいたい12時間くらい持つようになった。
main.conf
+DiscoverSchedulerInterval = 20
+DefaultLinkPolicy = 15