ぽつんぽつんと書くブログ

飽きっぽいので、我慢せずに飽きることを許容しながら、ぽつんぽつんと生まれてくるブログ

PebbleをTaskerで操る(AutoPebble)

Taskerに有料のサードパーティープラグインであるAutoPebbleを追加して、オリジナルアプリもどきを作ってみたい。
ただし、残念なことに、自分のPebbleTime上では、カーソルなどの反転がうまく表示されず「黒塗りつぶし」になってしまった。自分専用のアプリなので気にならないが、潔癖症の人は避けた方がよいかもしれない。
なお、以下は通勤の合間にヘルプを読んででっち上げたコードであるから、本来の使い方を逸脱していたり、もっと簡単な方法もあるかもしれないのでご留意願いたい。

まず、AutoPebbleでできる「主な」ことを簡単におさらいしたい。

  • 右側の上中下ボタンで選択する3項目メニュー(長押しとダブルクリックやシェイクも取得できる)
  • その亜種である通知画面。実質的には3項目メニューと同じ。
  • 右側の上下ボタンで選択肢を切り替え、中央ボタンで決定する複数項目メニュー
  • Pebble側のAutoPebbleアプリが起動したことで発生するイベント
  • Pebble側で上記の選択ボタンが押された際に発生するイベント(Commandという変数で押されたボタンを識別できる)


この仕様から導かれるおよその戦略は以下の通り。

  • Pebble側でAutoPebbleが起動したらメインメニューを表示する
  • ボタン押下時に発生するイベントで、変数"Command"で返されたTaskerのTaskを実行する
  • サブメニュー用のTaskを作り階層構造にもする。

さらに応用として

  • 自宅Wifiから離脱した際に発生するイベントで、Pebbleに「消灯の確認」を通知し、決定ボタンが押されたときはIRKitから消灯するリモコン信号を発する。
  • 自宅Wifiに接続した際に発生するイベントで、Pebbleに「点灯の確認」を通知し、決定ボタンが押されたときはIRKitから点灯するリモコン信号を発する。

Pebble側でAutoPebbleを起動時にメニューを表示するプロフィール
3項目メニューを表示し、上ボタンを押すとリモコンという別のサブメニューに飛ぶ。中と下ボタンには今のところ割り当てなし。

Profile: Pebbleでアプリを開いた (186)
	Restore: no
	State: AutoPebble App [ Configuration:Watch App Opened: true
Pebble Connected: false
PebbleDisconnected: false
Media Button: false
Media Button Previous: false
Media Button Next: false ]
Enter: Pebbleメインメニュー (189)
	A1: AutoPebble List [ Configuration:Full Screen: false
Header: Taskerメニュー
Labels: リモコン
Actions: task:リモコン
Last Line Height Default: false
Remember Position: false
Motion Action: task:リモコン
No Prefix if Command: false
Do Not Disturb: false
Clear History: false
Open Phone App: false
Save Scren: false
Don't Send Screen: false
Go Back: false
Go Back Multi: false Timeout (Seconds):120 ] 


ボタン押下時の発生イベントで、Commandに従いTaskerのTaskを実行するイベント
このプロフィールを作ることで、冒頭にtask:を付してあるCommandを、タスクとして解釈するようになる。

Profile: Pebble:タスク呼び出し (195)
	Event: AutoPebble [ Configuration:Command Filter: task:
Case Insensitive: false
Exact: false
Case Insensitive: false ]
Enter: Task呼び出し (194)
	A1: Variable Set [ Name:%command To:%apmessage Recurse Variables:Off Do Maths:Off Append:Off ] 
	A2: Variable Search Replace [ Variable:%command Search:task: Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In:%command Replace Matches:On Replace With: ] 
	A3: Flash [ Text:%command を実行 Long:Off ] 
	A4: Perform Task [ Name:%command Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:Off ] 

サブメニューのタスク
複数項目メニューである。「外出就寝」というタスクを用意しておき、それを呼び出している。ちなみに、IRKitから、すべての家電に対して電源OFFのリモコン信号を発するタスクである。詳細はIRKitの記事を参照されたい。

リモコン (192)
	A1: AutoPebble List [ Configuration:Full Screen: false
Header: リモコン
Labels: 外出就寝,帰宅,照明
Actions: task:外出就寝,task:帰宅,task:時間に応じた照明をつける
Last Line Height Default: false
Remember Position: false
Title Font: Gothic 14 Bold
Text Font: Gothic 18
Motion Action: task:Close
No Prefix if Command: false
Do Not Disturb: false
Light Mode: Turn On Briefly
Clear History: false
Open Phone App: false
Save Scren: false
Don't Send Screen: false
Go Back: false
Go Back Multi: false Timeout (Seconds):120 ] 

応用編
 ここから先は別稿に譲る。

今更ながらIRKitを買った

すでに枯れた商品なのかもしれないが、IRKitを買ってみた。 残念なことにAndroid用のアプリはあまり作りこまれておらず、登録ボタン数に厳しい制限があり、タイマー機能などもないためそのままでは活用は難しい。 そこで、Taskerからも使えるように奮闘してみた。途中JavaScriptを使っているが、ほぼ初めて書いたものなのでその辺は割り引いて読んでほしい(あちこちからのコピペなので、随所に痕跡があるかと思いますがご容赦を)。

まず、ほかでも使いまわせるようリモコンデータ部を分離した。本当はjsonとしてネット上に置くのがいいのかもしれないが、ここでは単なるjsファイルとしてローカルに置くことにした。

/sdcard/Download/Javascript/IRKitCommand.js *1

var text =`{
    "照明勉強": {"format":"raw","freq":38,"data":[123,345,678]},
    "照明普段":{"format":"raw","freq":38,"data":[333,444,555 666]},
    "照明シアター": {"format":"raw","freq":38,"data":[98 76,54 32,2]}
}` 

setLocal("irjson" ,text);

このパターンで好きなだけ繰り返し追加できる。最後だけ「,」はなしになるので注意。なお、リモコンコードはダミー。 コードの取得はhttp://d.hatena.ne.jp/tsukaban/20150828/p1を参考にした。 このコードをTaskerから呼び出すとローカル変数(配列)"irjson"にリモコンデータが格納される。

続いてリモコン発信のコードはこちら。ローカル変数"irjson"の中にリモコンコードが格納された状態で呼び出す必要がある。

/sdcard/Download/Javascript/IRKitSendIR.js

var IRs;
var text;

text = local("irjson");
IRs = JSON.parse(text);

var deviceid = "xxxxxxxxxxx";
var clientkey = "xxxxxxxxxxx";
var msg = IRs[sendir];

function send(message){
  var xhr = new XMLHttpRequest();
  xhr.open("post", "https://api.getirkit.com/1/messages", false);
  var form = new FormData();
  form.append("deviceid", deviceid);
  form.append("clientkey", clientkey);
  form.append("message", JSON.stringify(message));
  xhr.send(form);
}
 
function main(){
  send(msg);
}
 
try{
  main();
}
catch(e){
  flash(e.message);
}

こちらもidやkeyの取得はhttp://d.hatena.ne.jp/tsukaban/20150828/p1を参考にした。

なお、参考までに自分の場合、INHOMEというグローバル変数で、自宅にいるかどうかの状態管理をしているので、以下のような分岐をしている。コード中の「192.168.1.xxx」の部分は、自身のIRkitのIPアドレスを指定する。 /sdcard/Download/Javascript/IRKitSendIR.js (自分用)

var IRs;
var text;

text = local("irjson");
IRs = JSON.parse(text);

var deviceid = "xxxxxxxxxxx";
var clientkey = "xxxxxxxxxxx";
var msg = IRs[sendir];

function send(message){
  var xhr = new XMLHttpRequest();
  if(global("INHOME") == 1){
    xhr.open('post','http://192.168.1.xxx/messages',false);
    xhr.send(JSON.stringify(message));
  }else{
    xhr.open("post", "https://api.getirkit.com/1/messages", false);
    var form = new FormData();
    form.append("deviceid", deviceid);
    form.append("clientkey", clientkey);
    form.append("message", JSON.stringify(message));
    xhr.send(form);
  }
}
 
function main(){
  send(msg);
}
 
try{
  main();
}
catch(e){
  flash(e.message);
}

この2つのスクリプトをTaskerから呼び出して使う。

具体的にはこんな感じ。

リモコン送信 (165)
    Run Both Together
    A1: Vibrate [ Time:50 ] 
    A2: Variable Set [ Name:%sendir To:%par1 Recurse Variables:Off Do Maths:Off Append:Off ] 
    A3: JavaScript [ Path:Download/Javascript/IRKitCommand.js Libraries: Auto Exit:On Timeout (Seconds):45 ] 
    A4: JavaScript [ Path:Download/Javascript/IRKitSendIR.js Libraries: Auto Exit:On Timeout (Seconds):45 ] 
    A5: Flash [ Text:%sendir を送信しました。 Long:Off ] 
    A6: [X] Notify [ Title:%sendir を送信しました。 Text: Icon:hd_aaa_ext_home Number:0 Permanent:Off Priority:3 ] 

このリモコン送信というタスクに引数をひとつつけて呼び出すとリモコンが送信される。

昼の電気 (175)
    A1: Perform Task [ Name:リモコン送信 Priority:%priority Parameter 1 (%par1):ペンダントON Parameter 2 (%par2): Return Value Variable: Stop:Off ] 
    A2: Perform Task [ Name:リモコン送信 Priority:%priority Parameter 1 (%par1):照明勉強 Parameter 2 (%par2): Return Value Variable: Stop:Off ] 

これで、パナソニック製の照明にある「勉強」というモードになる。

複数の送信コマンドを並べてバッチ処理も可能だし、条件分岐もできる。

*1:このようなおかしなパスなのは、Syncという同期ソフトでPCとフォルダ共有しているため。リモコンコードの追加削除はPC側でやった方が楽なので。

Pebbleでポモドーロタイマーを

勤務時間中は毎時13,27,43,57分に携帯をバイブさせ、ポモドーロタイマー兼次の時間帯のアポイントリマインダーとして使ってきた。

しかし携帯バイブは気が付きにくく、また、音が大きいため、トイレの個室や会議中に鳴ると、少し恥ずかしかった。

そこで、ほぼ無音なのにほぼ確実に気がつくPebbleを、Taskerでポモドーロタイマー化してみた。

 

Profile: ポモドーロタイマー (32)
Priority: 0
Time: From 8:57午前 every 15m Till 5:15午後
Day: Mon, Tue, Wed, Thu or Fri
Enter: ポモドーロバイブ (37)
A1: [X] Vibrate Pattern [ Pattern:0,100,20,100,20,100,20,100 ]
A2: Variable Set [ Name:%now To:%TIME Recurse Variables:Off Do Maths:Off Append:Off ]
A3: Variable Split [ Name:%now Splitter:. Delete Base:On ]
A4: Variable Add [ Name:%now2 Value:3 Wrap Around:0 ]
A5: Variable Add [ Name:%now1 Value:1 Wrap Around:0 ] If [ %now2 > 59 ]
A6: Variable Set [ Name:%now2 To:0 Recurse Variables:Off Do Maths:Off Append:Off ] If [ %now2 > 59 ]
A7: Notify [ Title:%now1 時 %now2 分 になります。 Text: Icon:hd_ab_device_access_time Number:0 Permanent:Off Priority:3 ]
A8: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ]
A9: Notify Cancel [ Title:%now1 時 %now2 分 になります。 Warn Not Exist:Off ]

 

A1はスマホでやっていた時代のものなので無効化している。

 

今更ながらPebble Timeを買った

敵対的買収を受けた結果、来年以降のサービスの存続が危ぶまれているPebble Timeを、今更ながら買ってみた。

Fwの最新は4.3だが、それにアップデートするとSOSが頻発し、電池消費量もひどかったので、4.2にダウングレードした。そうしたところ、公称通りの電池の持ちになり、SOSも発生しなくなった。しかし、大多数のウォッチフェイスとウォッチアプリが4.3でなければ動作しないことから、そのままではかなりわびしい状況となる。そこで、安定するまで、試行錯誤を繰り返してみた。

 

結論から言うと4.3で安定した。

以下その手順となるが、必ずしもこの手順に再現性があるとも限らないから、期待しないで試すくらいの気持ちで読んでほしい。

 

手順は以下のとおり。

  1. まず、初期化。スマホ側のBlutoothのペアリングを解除し、続いてPebble側で設定画面から初期化する。
  2. スマホ側のPebbleアプリで再接続を試みるとペアリングが始まるので、接続する。
  3. 自動的に4.3へのアップデートが始まるので、しばし待つ。
  4. 完了すると日本語化前の4.3がインストールされた状態となる。
  5. 続いて、スマホ側で4.2のファームウエアを落としておき、ファイラーなどで開き、Pebbleアプリで開く。
  6. 4.2へのバージョンダウンが始まるので、しばし待つ。
  7. akt08.zipのメニュー日本語化版をインストールする。これで、安定した4.2の環境が構築される(4.2で使い続ける場合はここで終わり)。
  8. スマホ側のPebbleアプリの上に表示されている黄色い「!」アイコンをタップし、4.3にアップデートする。
  9. akt08.zipのメニュー「英語」版をインストールする。これで、安定した4.3の環境が構築される。

 

どこが必要でどこが不要なのかの切り分けはできていないが、これで安定した環境となった。どういうわけか、いきなり4.3にして、英語メニュー版の日本語化をしても安定しなかった。どちらも試してみて、上の方法でだけ安定した方がいたらコメントを残してほしい(返事できないかもしれないけど)。

 

上記のとおり、日本語化にはakt08.zipを利用した。09以降は、PebbleTimeよりメモリーの少ないPebble2の為にフォントの数が減らされているので意図的に古いバージョンを当てた。 

この状態で安定しているので、SOSが頻発している方がまだいるならば、参考にしてほしい。

 

WatchFaceは、ビジネス用には天気とカレンダーが表示されているForeCalを、オフ用にはPrismClockのようなカラフルな系統のものやWeatherGraph、Weather Waveのようなお天気マニア的な系統をつかっている。

なお、個人の感想としては、他のスマートウォッチとは違い、あまりリアルな系統のWatchFace(実在するアナログウォッチの盤面を真似たもの)は合わない。暗いし、解像度が低いので、チープな感じが際立つ。

 

アプリも期待していたのだけど、あまり使えそうなものは多くなかった。

  1. GoogleTasks …AndroidのスライドメモProとの相性が良い。タスク管理から、単なるテキスト共有にも使える。
  2. Mini Map、SimpleMap、PalMap …地図アプリ。少しずつ機能が違うので、どれが合うかは好みによる。
  3. Wikipedia …日本語音声認識がごにょごにょ必須なため、それ無しだとランダム表示か、周辺施設検索くらいしか使いみちがない。それなのに、表示してみると本文がきちんと表示できるものは一部にかぎられており、実に悲しい。
  4. Timeline …標準のスケジュール表示機能+α。ただし、アルファの部分はうまく活用できていない。でも、スケジュール表示機能だけで見ても、秀逸。

 

もっぱら「スマートな機能」については、Androidの通知転送と、日本語では定型文だけながらLINE等への返信くらいしか使いこなせていない。

なお、通知を活用するため、Android側にもともと入れていたTaskerを利用して、いくつか専用のマクロを組んである。

AutoAppシリーズのAutoPebbleを入れたが、かなり細かな制御ができるため、擬似アプリ的なものも構築可能だ。

例えば、オリジナルのメニューやPebble通知から選択してIRKitを制御することも可能なので、自宅のWi-fiを掴んだ時にPebbleに通知を飛ばし、選択ボタン(右中央ボタン)を押すと、自宅の照明やエアコンがつくような動作を仕込んだ。これでTaskerだけで大抵のことができる(ウォッチに画像が飛ばせないのだけが残念)。

 

こんな感じにシンプル(?)に使っている。

ナビと連携できればよかったがそれはできなかった。GoogleマップYahoo!地図のナビ通知は特殊なようで、Pebbleアプリをはじめ、TaskerやAuto notificationでは通知をつかめないためPebbleに通知を転送できないのだ。

いくつかナビ的アプリもあるようだが、細かな制約があり、気持ちよく使えるものがない。それだけは残念に思う。

 

 

 

 

 

 

Boox T68のおすすめ設定+Tips

 端的に言えば、凄まじく遅くて、タップ位置が1センチもずれるこの端末をどのようにしたら、マシに使えるか、というTipsだ。

A2 Modeを使え

 Booxには高速描画モードであるA2 Modeというのが備わっている。
 挙動から推測するに、白黒二値での描画(FAXみたいな感じ)にし、かつ、リフレッシュの頻度を落とすことで動作を高速化しているようだ。

 画面右上にある更新マーク(丸い矢印)がA2 Modeのボタンである。

  1. 標準(16階調グレースケール)=A2 Mode解除時
  2. A2 Mode Quality first
  3. A2 Mode Performance first

の三種類のモードがある。

 下2つについては、体感できるほどの差はない。少なくとも私には。
 白黒二値になるので読書等には使えないが、ファイラーやテキスト編集時には重宝する。
 特に、Google日本語入力が文字を取りこぼすときは、A2 Modeにすると改善することが多い。

物理キーによる独自ショートカットキーをマスターしろ

  • Menuキー長押しで強制リフレッシュ。特にA2 Modeの時に一瞬だけ標準(16階調)に戻す時に重宝する。また、「あれ?ボタンを押したけど、真っ白になって先に進まないな。」という時に押すと画面が現れたりする。
  • 戻るキー又は決定キーの長押し。フロントライトのON/OFFを切り替えられる。
  • 上下左右キーはカーソルキー、決定キーはEnter、ページ前後はPageUP/DOWNキーに割り当てられているようだ。

 とにかくタップ位置がずれることによるストレスが最も辛いから、物理キーを多用することも一計である。
 例えば、「メニュー>下下>決定」といった操作である。

壁紙は白にしろ

 黒系にするとスクロール時の残像がひどい。

Androidの設定画面でいじくれ

 デフォルトのホームアプリであるOnyx Launcherから呼び出せる設定はごく一部である。
 好きなホームアプリを入れて、そこから設定を呼び出せばAndroid本来の設定画面を呼び出すことができる。

Wifiは画面OFFをでも通信する

 好みにもよるがこのようにしておかないと電子書籍のダウンロードでいらいらするように思う。

BluetoothはOFF

 これも好みだ。何故か自分の環境ではBluetoothでのテザリングはできず、キーボード・マウスも使用しないので常時OFFにしている。ポメラを志向している人とは袂を分かつことになる。さらば。

ディスプレイ設定は独自になっている

  • 操作が行われなければ3分経過で画面OFF
  • 15分操作がなければ電源OFF(スリープではない)
  • 15分通信がなければWifiを自動OFF

といった設定ができる。私の場合は、この機能の一部を利用せずTaskerで実現している。好みだろう。
 画面がONになった時にWifiをONにする機能はないようである(これがきっかけでTaskerに移行した)。

 なお、3つ目のWifiをOFFをにする機能については、「never」にしても切れるという不具合があるらしく、あちこちでクレームの書き込みを見かけた。その場合は、60 minutesで運用するしかないだろう。

ユーザー補助で字を大きくしろ

 大きい文字サイズにすることで、タップ位置がずれてもなんとかなる。
 ついでに押し続ける時間を「中」にした方がいいかもしれない。

開発者向けオプションで

タップを表示にしろ

 押し続ける時間を「中」にするのと合わせ技で、タップ位置をズリズリっと修正することができる。
 副作用として、画面にタップ位置の残像が残って汚らしい(指紋がついたような感じになる)。

GPUレンダリングを使用にする?

 一応やっている。

バックグラウンドプロセスの上限を低くする?

 やってはいないのだが、あまりに遅いようならメモリ解放目的でこのような設定もありうるかもしれない。

Boox T68に入れるべきアプリ

 おすすめアプリをまとめてみた。

はじめに

 ドイツ版化する前よりはマシであるが、ドイツ版化しても、Playストアに表示されるアプリの数は必ずしも多くない。いくつかのアプリは別の端末にインストールした上で、apkをコピーしてインストールしなければならない。個人的にはesファイルエクスプローラでapkを受け渡しするのが一番簡単に感じられたので参考にされたい(esファイルエクスプローラは、インストールされているアプリをapkファイルとして別の端末で動作しているesファイルエクスプローラWifi経由で転送する事ができる)。

ホームアプリ~Zeam Launcher

 Nova Launcherなどをインストールしようとしてはいけない。ただでなくても少ないメモリーを圧迫してしまう。できるだけ容量の小さいものを使うべきだろう。
 ここではその一例としてZeam Launcerを上げた。

 出荷時に設定されているのはOnyx Launcherというが、基本的には殆ど使わないだろう。ただし、フロントライトの明るさ調整はOnyx Launcherで行わなければならない。他のアプリで明るさ調整をしようとすると、変更できないばかりか、(私の環境では)スリープ状態でフロントライトが点灯するなどの不具合が生じる。
 厄介なことに、このOnyx Launcherはアプリとして表示されないようなので、ショートカット作成ツール等を使って強引にショートカットを作成してやらなければ呼び出せない。もちろん、都度ホームキーの設定をクリアして呼び出す、という方法もある。
 なお、フロントライトのON/OFFの切り替えだけであれば、物理キーである「戻る」又は「決定」ボタンの長押しで可能であるので、一度希望の明るさにしてしまえばOnyx Launcherは二度と起動しないかもしれないが。

 なお、スワイプで通知を開くという機能があるので設定しておくと良い。

壁紙

 壁紙は白一色にしておいたほうが見やすい。黒系の壁紙にすると横スクロール時に残像が発生し、非常に見難くなる。

青空文庫青空文庫ビュアAd

 可もなく不可もなくというところである。
 動作速度が遅いBoox T68では、本のダウンロード操作が実にじれったいので、時間のあるときにダウンロードすることをおすすめする。吉川英治著作権切れしたし、読むものは山のようにある。

Amazon kindle

 遅い。とにかく遅い。
 起動も遅い。ページ送りのアニメーションはOFFのにできないため、チラツキが半端ではない。
 が、サービスの継続性の点で、どうしてもKindleを利用してしまう。ページ送り時のチラツキは諦めてしまうと案外慣れてしまう。
 Koboのリーダーなどもapkをコピーしてやれば使えるらしい。
 Google Playブックスも数ページ読めたが、すぐに落ちてしまう。悲しい。

絶版マンガ図書館

 動作する。ページ送りアニメーションはOFFにできる。この点だけはKindleより快適かもしれない。
 しかし、本のダウンロード画面は遷移が遅く、またダウンロードボタンが小さいため、タップ位置がずれるT68ではかなりイライラする。

Feedly

 普段使っているgReaderが、Boox T68上では遅くて使いものにならない(どのくらい使えないかというと、起動から一つ目の記事を開くのに20分はかかる)ので、Feedlyを使っている。
 Nexus5と比較すると雲泥の差で、「使えないことはない」というレベルである。事実上Mっけ満点の人しか使えないだろう。
 個人的には、電子書籍リーダー+RSSリーダーとしてのBooxを期待していたので、ここについては、Boox T68を大幅に減点したい。

SmartNews

 Feedlyよりはマシである。通知等は全て切っておいたほうが良いだろう。常用できなくはない、というレベル。

Opera Mini(Next)

 標準のブラウザよりはマシである。Nextか否かはおこのみで。

2ch Mate

 最新版だと落ちてしまう。Ver.0.8.5.1だと動作するので、作者のページからバックナンバーをダウンロードしてインストールすると良い。なお、自動更新されないよう、Playストアで設定を変更するのを忘れずに。

Titanium Backup

 動作する。但し、一部文字が表示されない部分がある。そういう時は、Nexus5と並べて「上から5個目のメニューを押せばいいんだな。」などと涙ぐましい努力を要求される。

Link2SD

 過度の期待は禁物。extSDに大量のアプリを放り込むことができるが、放り込んだだけ端末の動作が遅くなる。Plus版を購入するとデータについてもSDに移すことができるので、使い方によっては、むしろそちらのほうが重要かもしれない。
 また、アプリの凍結やアンインストール等の管理にも意外に便利である。

Screen Rotation

 Boox T68には傾きセンサーがないので、画面の縦横回転ができない。このアプリで手動で回転させている。
 一応横向き(Landscape)にすれば見開きで書籍を読めるが、6.8インチだと辛い。
 また、切り替えに凄まじく時間がかかる。

Tasker

 「画面点灯時にWifiをONにする、画面消灯後数分でWifiをOFF+メモリ解放し、さらに1時間後に端末の電源を切る」というマクロを組んでいる。似たようなことは端末の設定機能でも実現可能だが、いまいち動作が信用ならないので自分で作ってしまった。
 このような運用で、1日そこそこ(通勤+昼休み+帰宅後)使って25%消費(電池残量75%)程度となる。

 蛇足だが、Takserの電源OFFコマンドは、強制電源OFFのようで、アプリの設定などが保存されない。最初、毎起動時Zeam Launcherが初期化されていて不思議だったが、手動で電源を切ったところ設定が保存された。Taskerで電源OFFする前にZeam Launcherを終了させてやるコマンドを挟んだほうがいいかもしれない。

esファイルエクスプローラ

 百度バイドゥ)問題などもあるが、これを超えるファイラもないので諦めて情報を垂れ流している。
 通常のファイル管理、フォントの変更(Rootエクスプローラ)、他の端末からのAPKのコピー、他の端末とのファイルのやりとり、Dropbox等のクラウドへのアクセス等、様々な場面で重宝する。

Google日本語入力

 とりあえず、というところ。省メモリの日本語入力があるならばそちらを使ったほうが良いかも。
 タップ位置がずれる問題に対応するため、キーボードの高さは最大にしている。その状態で各キーの上辺をタップすれば大体問題なく入力される。
 なお、取りこぼしがひどいという時はA2 Modeという高速描画モードに切り替えると改善される。

FastReboot

 メモリ解放ツール。あまりの遅さに苛立った時ポチッとするストレス発散ツール

ネットワークモニタミニプロ

 APKでNexus5から移動した。通信状況が見れるので便利。

その他~入れているだけのソフトたち

@Voice Aloud Reader

 音声読上げソフトだが、イヤホンを挿す場面があまりない。

Acapela TTS Voices

 音声読上げエンジンだが、イヤホンを挿す場面があまりない。

Adobe Reader

 使い方の問題だがあまり使っていない。
 Chromeがインストール出来ない(正確にはインストール後、Googleアカウントでログオンしようとすると落ちる)ため、Chrome Cloud Printによる「端末に印刷(出力)」するという機能が使えないので、出番が少ないというのもある。

AOSS

 タップ位置がずれるので、暗証を入れるのに苦労する。そこで一応入れたけれども、一度も使っていない。

Evernote

 使い方の問題だがあまり使っていない。使いにくいわけではない。

EverClip

 この端末でWebを閲覧することが少ないため、出番は極めて少ない。

Jota Text Editor

 Bluetoothキーボードをつないでポメラをすることができるが、しないよね。遅いし。

Quick Office等の類

 まぁ、遅いしね。

Gridsize Free

 メモリが逼迫してきたら原因探しに使おうと思っているが、まだ出番は来ていない。

GSam Battery Monitor

 Battery Mixが使えないので代わりに入れてみたが、グラフ等が見難く、これならAndroid OS標準のバッテリー表示だけでいいのではないかと思い直した。

Sync

 extSDに受信フォルダを作って、母艦とのファイルの受け渡しなどを考えたのだけど、うまく行かなくて塩漬け。これは単に技量の問題ですね。

Softkeys

 画面上にもホームキーや戻るキーが欲しくて入れてみたものの、しっくりこないので、そして遅いので使わなくなった。

Youtube

 冗談で入れてみたけれど、再生するところまで行けなかった。冗談抜きに遅い。

はてなブックマーク

 そもそも、ウェブ閲覧しないから…。

amazonアプリ、ヨドバシビックカメラ等々

 いや、普通に液晶の端末でやったほうがカラーですし。速いですし。お寿司。

リモートデスクトップChromeのもの)

 冗談で入れてみただけです。

翻訳

 案外使わないので。

Boox T68の種類とファームウェア(ROM)

 続いてBoox T68の種類とファームウェアを説明する。
 ブログや掲示板の記事から得た知識の寄せ集めなので、必ずしも正しいとは限らないので、裏を取っていただくことと、実行の際は自己責任で、ということをお願いしたい。

 詳しくは、MobileRead Wiki - Boox T68をご参照いただきたい。ここでは要点だけをかいつまんで説明する。

The firmware of the device you are supplied may vary with the dealer you choose. The ereader-store in Germany provides what appears to be the Onyx stock firmware, whilst Arta Tech calls its version of the device the Lynx and includes Ivona TTS and a Polish Reader Store with its firmware. It is unclear what other differences exist between these two firmware versions.

MobileRead Wiki - Boox T68

Arta Tech版(LYNX)とドイツ版(Booxtor版)

 eBook Readers with E Ink ® (EPD) touch screen - Onyx-boox.comという販売元で購入するとポーランドから発送されるが、こちらは Arta Tech版と言われる仕様。私はこちらから購入した。
 上記で引用したが、ドイツのEreader Store | Onyx Boox T68 | Onyx Boox M96 - EREADER-STORE.EUで購入できるものとは仕様が一部異なるらしい。

ドイツ版ファームウェアをインストールするには

 ファームウェアについては、ドイツereader-storeのBooxtor氏がここで熱心にリリースしているのだが、仕様の違いのせいでそのままではArta Tech版のBoox T68にはインストールすることができない(無理にインストールしようとするといわゆる文鎮化する)。
 そこで、次の記事が参考になる。
 

(The "ereader-store firmware" can not be installed "straight" on Arta Tech Lynx T68 devices but you can use the method and tools provided by booxtor)
Just click start and wait.

MobileRead Wiki - Boox T68

 つまるところドイツ版のファームウエアはそのままではArta Tech版のT68にはインストール出来ないが、booxtorが提供しているツールを使えばクリックするだけでできるよ、ということである。

 ツールはmfgtool2といい、ここの「* download program package from here」というところからダウンロードできる。
 いわゆるROM焼きツールの類と思われる。これを使うことでBootloaderから何までドイツ版を上書きすることができる。そうすることで、Arta Tech版のT68をドイツ版T68にすることができるのだ。おそらくこのツールは、いわゆる文鎮化した時に復旧させるのにも使える(というか、Booxtorもそう言っている)。
 一度ドイツ版化してしまえば、あとは普通にドイツ版のROM(Booxster氏が配布しているもの)でアップデートすることができるようになる。

まとめ

 まとめると、Arta Tech版のT68を購入した場合に、ドイツ版ファームウエアをインストールするには次の手順が必要となる。これは製品の内容を大きく変更する操作であるし、失敗するとBoox T68がゴミになってしまうリスクのある操作である。熟慮の上で自己責任にて行われたい。

  1. mfgtool2でArta Tech版(LYNX)をドイツ版(Booxtor版)にする(はじめに一度だけで良い)。
  2. Booxtorがここで配布している最新ファームウェアに更新する。その際に以下に引用する注意書きがあるので注意。

UPD: If Play Store does not work after update, please do factory reset of your device! Sorry for inconvenience !

Settings ->System->Privacy -Factory data reset

 要するに、アップデート後Playストアがうまく使えない場合はファクトリーリセットしてね、ということである。ちなみに、何度かファームウェアを焼いたが一度だけ実際に体験した。ファクトリーリセットするとなれば、設定やアプリ等は全て失われる。

Root化

 さて、デフォルトの日本語フォントが、いわゆる中華フォントであるので、フォントの入れ替えがしたくなる。そのためにはRoot化が必要である。
 ドイツ版化したT68のRoot化はtowelrootというツールで簡単に行える(なお、Arta Tech版ではうまく動作しなかった)。towelrootはVer.1や3があるらしいが、Ver.1でないと動作しないという情報があったので、Internet Archive経由でVer.1をダウンロードした。
 なお、SUは別途Playストアからインストールする必要がある。

フォントの変更

 フォントの入替えの詳細な手順については別のページに解説を譲るが、(お行儀の良くない方法だが)ざっくりとは以下の要領である。

  1. root化したesファイルエクスプローラで/system/fonts/を開き
  2. 使いたいフォントをDroidSansThai.ttfなどの名前で上書きし
  3. 権限をRW-R--R--にする

というのが一番お手軽である。この方法だと、以後タイ語が正しく表示できなくなるが。

 この際、太めのフォントを使っておくと視認性に貢献すると思うが、好みもあるので難しいところである。

Root化必須アプリについて

 Titanium Backupは動作する。
 Link2SDも動作するが、あまりに遅く、大きな期待はしないほうが良い。ただし、電子書籍は容量を食いがちだから、それらのデータを外部SD(extSD)に置くことができるのは役立つと思う。