「Android」と一致するもの

先日、スマホをXperia Z5に機種変しました。
以前からアドレス帳はGoogleを使用しているので、スマホの初期登録時にそのGoogleアカウントを設定したのですが、アドレス帳の表示が変になりました。

・Googleアドレス帳のみを使用しているつもりだが、Googleアドレス帳の内容が本体連絡先で表示される。
・その為、グループやアドレス帳が二重に表示される。
・Googleアドレス帳ではグループやアドレス帳が二重に表示されてはいない。
・本体連絡先のグループを非表示にしてもアドレス帳アプリで電話番号やメールアドレスの欄が二重表示される。(※以下を参照)

電車 猫三郎(でんしゃ ねこさぶろう)
電話(携帯):080-XXXX-YYYY
電話(携帯):080-XXXX-YYYY
メール(携帯):train@example.com
メール(携帯):train@example.com

このようなGoogleアドレス帳を選択してるにも関わらず本体連絡先が邪魔をする(?)事象はXperia acro HD IS12Sの故障時スマホ交換、Xperia Z SOL23の機種変時にも発生していた記憶があるんですよ。
その都度、色々調べて解決していた記憶があるんですが、今回も発生したとなると今後もあり得る事象ということで、対処方法を書き残したいと思います。
この状態でアドレス帳に追加・修正・削除の操作をして、データの二重登録や想定外の削除が発生したら嫌ですしね…

参考になったのは以下のサイトです。

物置っぽい何か - Androidで連絡先の同期が取れない問題の解決策

  1. Googleコンタクトにログインし、連絡先を連絡先をエクスポートする。(万が一のバックアップ)
  2. Android端末の[設定]アプリ→[ユーザ設定]→[アカウント]→[Google]→(対象のGoogleアカウント)より[連絡先を同期]をオフにする。
  3. Google Playより、[連絡先を削除]アプリをダウンロードする。
  4. [連絡先を削除]アプリの[Delete All]ボタンをタップし、Android本体内に残る連絡先/グループを全て削除する。
  5. Android端末の[設定]アプリ→[ユーザ設定]→[アカウント]→[Google]→(対象のGoogleアカウント)より[連絡先を同期]をオンにする。

この方法で無事に復元でき、めでたしめでたし…っとそうは問屋が卸さないみたいでorz
上記方法のサイトで[連絡先を同期]オンにしたもの、数分待っても同期が完了せず、[現在同期で問題が発生しています。しばらくお待ちください。]とメッセージが表示されます。
当然、この状態でAndroid端末からアドレス帳アプリを開いてもGoogleアドレス帳の情報は見られない…
この事象について調べると、以下のサイトを見つけました。

スマホetc. - 「現在同期で問題が発生しています。しばらくお待ちください。」?!

  1. Android端末の[設定]アプリ→[ユーザ設定]→[アカウント]→[Google]→(対象のGoogleアカウント)→画面右上の[…]より[アカウントを削除]をタップする。
  2. [バックアップアカウントが必要です]と表示されるので、[アカウントを追加]をタップする。
  3. 先ほど削除したGoogleアカウントの情報を入力し、再設定する。
  4. Googleアカウント設定後、Android端末の[設定]アプリ→[ユーザ設定]→[アカウント]→[Google]→(対象のGoogleアカウント)をタップし、[連絡先を同期]がエラーならず、同期完了時刻が正しいことを確認する。

数分経っても同期されなかったのが、Googleアカウント情報を端末から削除→再設定でほぼ待ち時間なく同期されるようになりました。
この2段階の操作をしない不具合を解消できないというのは凄く面倒ですね…

今回、au Xperia Z5 SOV32を使用している私の環境における対処方法を記載しましたが、おそらく他のAndroid端末や他のキャリア(docomo、SoftBank)でも本件事象は発生し、上記の方法で解消されるのではないかと考えています。
ただ、連絡先やグループを削除するという作業が発生しますので、実施予定の方はバックアップの取得を忘れず、くれぐれも細心の注意を払うようお願いしますm(_ _)m

おそらく機種変するであろう2年後にはこの記事が役に立たないことを祈って…(-人-)

プロバイダ(ISP)変更検討

引っ越しを期にプロバイダを変更しようと検討してます。

現在はBフレッツハイパーファミリー5200円(屋内配線利用料、回線終端装置使用料込み)+ISP代2300円=7500円/月を利用しています。

契約しているスマホがauなので、KDDIのサイトを確認してみたらauひかりの方が安いことに気付きました。

ギガ得プラン5200円(ISP、機器レンタル料金込み)=5200円/月

また、auスマホを利用している場合、auスマートバリューの割引が可能です。
固定電話に加入させると言うマイナス条件がありますが、電話サービスは500円です。
加入後12ヶ月は1410円/月の割引、その後は934円/月の割引になります。
さらに3月末まではau春のスタート割があり、加入後3ヶ月間は934円/月の割引があります。

au側の計算が大変ですが、24ヶ月の総費用を求めると以下の通りになります。

Bフレッツハイパーファミリータイプを使い続ける場合:
7500円×24ヶ月=18万円

auひかり+電話を加入し、auスマートバリューとau春のスタート割を適用した場合:
(5200円+500円-1410円-934円)×3ヶ月=3356円×3ヶ月=1万68円
(5200円+500円-1410円)×9ヶ月=4290円×9ヶ月=3万8610円
(5200円+500円-934円)×12ヶ月=4766円×12ヶ月=5万7192円
→1万68円+3万8610円+5万7192円=10万5870円

Bフレッツとauひかりの差は18万円-10万5870円=7万130円と大きい!

ギガ得プランについては更新月以外で解約すると契約解除料9500円が掛かりますが、Bフレッツを解約して4ヶ月以上利用すれば差額分で黒字になる計算です。
auひかりを敷設する場合の初期費用は3万7500円ですが、11ヶ月以上利用すれば差額分で元が取れる計算ですし、そもそもギガ得プランには30ヶ月1250円の割引があります。
1250円×30ヶ月=3万7500円なので、30ヶ月以上利用すれば初期費用丸儲け(≧∇≦)!!
auひかりキャッシュバックキャンペーン1万円にも該当してそうだし、今月中に申し込もうかなぁ(´∀`)

こんな記事を通勤途中や帰宅途中に書いてましたが、計算の為、iPhoneで文章を作成しつつ、Androidスマホで電卓アプリを操作してましたΣ
はたから見てる人は滑稽に見えたでしょうね~(^_^;)

メールアドレスの変更が面倒で15年近く同じプロバイダを使用してましたが、皆様も回線とプランを見直し、キャッシュバックを併用したらかなりお得になるかもしれませんよ?
auひかりに限らず、通信費の見直しをご検討してみては如何でしょうか?

自分が使っているAndroid端末Xperia IS12Sで削除できないファイルができました。

これがまた不思議で見えたり見えなかったりするんですよ。
と言うのも、動画一覧ではファイルとして存在しているように載ってるのに、いざ再生しようとすると再生エラーが発生する。

ドライブレコーダーアプリ"AutoGuard"で撮影した動画で、以前に削除の操作をしたはずなのですが...

仕方ないので、ESファイルエクスプローラで見ると当該ファイルが存在しないΣ
通常表示だと存在しないのに、動画のみを表示するモードだと、ファイル一覧に載ってるΣ

動画のみを表示するモードからファイルの情報を見ると、ファイルサイズは0バイトだし、更新日時はN/Aと表示されている。

そして動画のみを表示するモードからそのファイルを削除操作しても、削除できない...
どうやらゾンビファイルになったようですorz

色々と調べて、やっと解決方法が見つかりました。
このゾンビファイルの削除方法は、そのファイルと同じファイル名で同じパス直下にファイルを作り、その後、削除するだけ。

今回のトラブルの原因は、ドライブレコーダーアプリが不安定だった為、過去に録画されたファイルが中途半端にしか削除されなかったこと。
推測ですが、インデックス領域にはファイル名があるのに、データの実体が削除されてしまった為、不整合な状態になってしまった。
なので、同じファイル名でファイルを作成し、インデックスを強制的に上書きしてやることで、不整合を解消でき、ファイルを削除できるようになったと言うことでしょうか?

root権限もないAndroidでゾンビファイルを削除するのは激しく面倒いってことでorz

しかし、Androidのファイル構造を見られるアプリ"ESファイルエクスプローラ"には大変助けられましたm(_ _)m

2016/01/24:赤字の箇所を加筆修正しました。

最近、YouTubeを見ると事故の瞬間やDQNカーの問題行動をアップロードしたドライブレコーダの動画を沢山見かけます。
ドライブレコーダー機器の値下がりや、警察からの要請もあるのか一般の乗用車だけではなく、バスやタクシーの交通機関でも実装されていることが多くなりました。
最近は一部のレンタカー会社でも導入しており、事故の偽装がバレ、逮捕されたニュースもありました。

ドライブレコーダは義務ではない為、安くなったとは言え、まだまだ設置していないという方が多いのではないでしょうか。
しかし、世の中にはスマートフォンをドライブレコーダとして使うことができるアプリを公開している方がいらっしゃるようです。

ゴールデンウィークのレンタカーを運転した際にスマホをドライブレコーダとして利用しましたので、今回はそのレビューを書きたいと思います。

まずはスマホをドライブレコーダとして使用する為に以下のものを用意します。

1.スマホ本体
2.ドライブレコーダアプリ
3.スマホを固定するカーアクセサリ
4.シガーライターソケットからUSB給電可能なカーアクセサリ
5.スマホを充電可能なUSBケーブル

上記の5点について、順番に説明します。

1.スマホ本体
これがないと今回のレビューが始まらないので省略。

2.ドライブレコーダアプリ
色々とググってみまして、評判が悪くなかった以下のアプリを利用しました。

・Androidアプリ-アウトガード - カムコーダー

このアプリ(アウトガード)は、映像の録画機能だけではなく、GPSを利用した位置の記録機能、メモリが一杯になったときに古い映像から削除するローテーション機能、衝撃センサ(スマートセンサ)を使った衝撃を検知した映像の自動消去防止機能、映像とGPSの記録位置を関連付けて再生する機能等が存在します。

3.スマホを固定するカーアクセサリ
アウトガードはドライブレコーダアプリというだけですので、スマフォを固定するには何かしらのカー・アクセサリが必要になります。
調べてみたところ、以下の製品を見つけました。

・オウルテック(OWL-CACHG)-強力ゲル+真空吸盤でガッチリ固定!iPhone/スマートフォン対応ワンタッチホールドクリップホルダー

ダッシュボードの上でも吸着可能な吸盤とクリップ形式でスマートフォンを固定可能なアクセサリです。
実際に吸盤式のホールドクリップホルダーを使用してみると、車種によりダッシュボードに凹凸があると吸着力が弱く、走行中に剥がれてしまうことがありました。別の商品を検索したところ、以下の製品を見つけました。

・ネクストゼロワン(HOLD11337)-サンバイザー クリップスタイルカーホルダー

サンバイザーにクリップ方式で固定可能なアクセサリです。
ホールドできるサイズに制限があるので、大画面液晶を持つスマホをお持ちの方はサイズをご確認ください。

ネクストゼロワンのこの製品はかなり使用したのですが、気になるのが振動による動画の乱れです。
可動部が球体となっているので、映したい方向の微調整が可能なのですが、プラスチック製故に経年劣化でゆるくなってしまい、スマホの重みと走行中の振動で走行中に変な方向を向いてしまうようになりましたorz

そこで別のサンバイザー式の商品がないかと探したところ以下の商品を見つけました。

・星光産業(EC-155)-バイザースマホホルダー

星光産業の商品は、可動部がネジ式となっております。コインやドライバーで可動部の調整が必要ですが、勝手に動くということはありません。
しかし、クリップ部分をサンバイザーに取り付ける為にはかなりの力が必要です。女性だと取り付けられないのではないかという力が必要ですΣ
毎回取り付ける必要がないマイカーであればそれほどの労力にはなりませんが、レンタカーやカーシェアの車への取り付けとなると、これだけで5分くらい掛かります…
マジックテープも付いているので、クリップ部分はもう少しゆるくても良いと思いました。

4.シガーライターソケットからUSB給電可能なカーアクセサリ
フロントガラス側にスマホを固定すればドライブレコーダの出来上がり(≧∇≦)…と、そうは問屋が卸してくれませんorz
ドライブレコーダアプリはスマホのバッテリーをもの凄く消費する上に、長時間の録画を想定している為、フル充電をしても1~2時間の運転でバッテリー切れになる可能性があります。
そんなわけで、シガーライターソケットからスマホを充電するアクセサリが必要です。

・サンワサプライ(CAR-CHR66UW)-車内でiPadが充電できる、iPad・iPhone・iPodの充電に対応したハイパワー2.1Aカーチャージャー

スマホ1台の充電なら1.0A対応のものでギリギリいけますが、バッテリー容量が大きいスマホ、iPad等のタブレット、モバイルルータ等のバッテリーが大きい電子機器を充電する可能性があるならば、2.0A以上対応のものを購入したほうが良いかもしれません。

5.スマホを充電可能なUSBケーブル
シガーライターソケットからUSBで給電できるアクセサリとスマホを接続することで、車のエンジン起動中は、スマホのバッテリー切れを心配することなく、スマホをドライブレコーダとして使用することが可能になります。
利用する車種によりますがケーブルの長さは1.5~2mあれば十分かと思います。
USBケーブルには通信用と充電用があります。充電専用または通信/充電両用のケーブルをお買い求めください。


前置きの文章だけで長くなりましたが、ここからが実際のレビューです。


スマホをドライブレコーダとして使用するには以下のような問題点があることが分かりました。

1.ドライブレコーダアプリが不安定
Androidの場合、機種やOSが多種多様であり、すべての端末やOSで動作保証することができません。
動画を録画するという高負荷の処理をし続けるこのアプリも例外ではなく、録画設定によってはアプリが固まったり、映像再生時に画面が乱れることがありました。
録画時にGPS情報を記録してる場合、自動高画質の録画にチェックがある、またはビデオ解像度をスクリーンサイズにしていると問題が発生しました。ビデオ解像度をD1に手動設定したところ、映像と地図が乱れずに再生されるようになりました。
動画サイズが大き過ぎ、地図を表示できるスペースがないと、動画再生時に支障をきたすみたいですね。
また、保存先を変更した場合、その後、保存先を元に戻したとしても、元の保存先にある過去の動画が一覧に表示されなくなる問題があるので、注意が必要でした。(※これはアプリの作り込みの問題)

2.振動に弱い
装置を車に完全固定する通常のドライブレコーダと異なり、スマホを車に取り付けるカーアクセサリを利用しているだけなので、走行中の振動に強くありません。
特にサンバイザー式の製品は振動に弱いと言って良いと思います。
路面の状況が良くない場所を60km程度で走行すると、スマホが揺れて、記録される映像も揺れます。
ドライブレコーダアプリ専用として作られているカーアクセサリではない以上、振動を吸収できないのは我慢するしかありませんね…
また、橋と橋の間のような継ぎ目がある場所を通過すると、その「ガタンッ」って音がなったときにアウトガードの衝撃センサが過剰反応し、事故として記録されているところが何箇所がありました。
アウトガードの衝撃センサの設定で衝突敏感度を"極度に低く"しても、些細な振動で衝突と判断します。その後、衝突映像を保存する設定に従い録画されると、アプリが落ちるようです。
仕方ないので、衝撃センサの利用を諦めました…

3.信号機がチカチカ記録される
これは普通のドライブレコーダでも発生しうる現象ではありますが…
LED信号機は、60Hzの電気を使用している西日本地域だと毎秒120回、50Hzの電気を使用している東日本地域だと毎秒100回点滅を繰り返しており、スマホカメラのフレームレートとズレがあるとLED信号がついたり消えたりしているように見えます。0.8秒くらいの間隔で信号がついたり消えたりを繰り返して見えます。
信号が切り替わる微妙なタイミングで事故に遭った場合、ドライブレコーダがあっても事故の証明が面倒になるのではないかと心配になります。
ちなみにフレームレートを落として記録する夕暮れや夜間には発生しにくくなります。
対策としては設定するフレームレートを電気の周波数と一致する30fpsや25fpsにするのを避け、27.5fps前後にします。
なお、信号機のチカチカはLED信号の特性上によるものなので、古い電球式の信号機では発生しません。

4.映像から他の車のナンバーが分かるとは限らない
アウトガードで記録できた映像を見ましたが、映像から他の車のナンバーを見る程のキメ細かさはありませんでした。
停車している状態で前方の車のナンバーを確認しようと頑張りましたが、"99-99"の部分が分かっても、"地域名999"の部分やナンバー左側のひらがな1文字が分かりませんでした。
これはスマホカメラの性能向上により将来は解決する話かもしれませんが、現在の性能では事故の状況や、逃走車の色や車種を確認することはできますが、事故車が逃走したときに、ドライブレコーダーだけを頼りにするのは難しそうです。
実際、YouTubeのドライブレコーダ動画を確認していると、事故った時点で車のナンバーを声に出して動画に残している方がいらっしゃいました。


某日高レポート風にまとめると…
・ドライブレコーダアプリを利用してスマホをドライブレコーダとして使用することは可能。
・ドライブレコーダ専用の端末と異なり、設定によりアプリが不安定になることがあるので注意が必要。
・スマホ固定ホルダーの関係上、走行中の振動に弱い。(※特にサンバイザー式は振動に弱い)
・フレームレートの関係上、LED信号がチカチカする。(※ただし、これは普通のドライブレコーダでも発生し得る)
・動画の録画サイズにより車のナンバーが分かると限らない。
・猫は可愛い。

ということで今回のレビューを終わりにしたいと思いますm(_ _)m

P.S.:
この記事にて多くの製品を紹介しましたが、あくまで一例です。
他にも良い製品があるかと思いますので、ご参考程度にご利用ください。

P.S.:
自作PCパーツを販売しているオウルテックさんがカーアクセサリを作っていることが不思議でしたが、先日オウルテックの社員さんと話す機会がありました。
カーアクセサリの販売について質問してみたところ、自作PC人口が減った為、新たな販路を確保する為にカーアクセサリを販売し始めたとのことですΣ
なるほど、オウルテックさんも大変なんですね…

Google Maps Android API v2のサンプルプログラム(Google Maps API Demos)をEclipseにインポートし、実機で動かそうとしてみたのですが、強制終了されてしまいました。
デバッグ実行してみたところ、以下のログがLocCatにはき出されていました。

02-09 11:32:59.657: E/dalvikvm(430): Could not find class 'com.example.mapdemo.BasicMapActivity', referenced from method com.example.mapdemo.MainActivity. 02-09 11:33:13.688: E/AndroidRuntime(430): FATAL EXCEPTION: main 02-09 11:33:13.688: E/AndroidRuntime(430): java.lang.ExceptionInInitializerError 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.Class.newInstanceImpl(Native Method) 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.Class.newInstance(Class.java:1409) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.os.Handler.dispatchMessage(Handler.java:99) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.os.Looper.loop(Looper.java:123) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.main(ActivityThread.java:3683) 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.reflect.Method.invokeNative(Native Method) 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.reflect.Method.invoke(Method.java:507) 02-09 11:33:13.688: E/AndroidRuntime(430): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 02-09 11:33:13.688: E/AndroidRuntime(430): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 02-09 11:33:13.688: E/AndroidRuntime(430): at dalvik.system.NativeStart.main(Native Method) 02-09 11:33:13.688: E/AndroidRuntime(430): Caused by: java.lang.NoClassDefFoundError: com.example.mapdemo.BasicMapActivity 02-09 11:33:13.688: E/AndroidRuntime(430): at com.example.mapdemo.MainActivity.(MainActivity.java:97) 02-09 11:33:13.688: E/AndroidRuntime(430): ... 15 more
数時間悩んでやっと解決方法を見つけたのでメモしておきます。

・前提条件
以下のページを参考にEclipseへの準備を進めて下さい:
Debian GNU/Linux 3.1 on PowerMac G4 - Google Maps Android API v2 のサンプルを動かしてみたら...

・ここからが本題
前提条件のサイトを参考に設定したつもりだったのですが、上記ログがはき出され、にっちもさっちもいきませんでした。
ググってみたところ、英語ですが、良さそうなソースを見つけました:
Stack Overflow - Google Maps Android API v2 - Sample Code crashes

なるほど。
ざっくり解説しますと、以下の通りです。

1. Google Maps API Demos (MainActivity)に"google-play-services_lib"をインポートする。
[プロジェクト(MainActivity)]→[プロパティ(R)]→[Android]と進むと[Library]の項目があります。
[Add]ボタンを押下すると[Project Selection]画面が開きますので、"google-play-services_lib"を選択し、[OK]ボタンを押下して下さい。
設定後は[プロパティ: MainActivity]画面を閉じます。
※"google-play-services_lib"を[Javaのビルド・パス]から[クラス・フォルダー]として追加しても、上手く動かないようです。

2. "libs"フォルダを作成し、そこに"google-play-services.jar"と"android-support-v4.jar"を追加する。
Google Maps API Demosには元々libsディレクトリがないようですので、[プロジェクト(MainActivity)]→[新規(W)]→[フォルダー]で[新規フォルダー]画面を開きます。
[フォルダー名(N):]に"libs"を入力し、[完了(F)]ボタンを押下します。
"libs"フォルダを選択し、[インポート(I)...]→[General]→[ファイル・システム]から[次へ(N) >]ボタンを押下します。
[インポート]画面の[次のディレクトリーから(Y):]"に"/extras/google/google_play_services/libproject/google-play-services_lib/libs"を指定し、[開く]ボタンを押下します。
"google-play-services.jar"のチェックボックスをチェックし、[完了(F)]ボタンを押下します。
同様の手順で、"android-support-v4.jar"も追加します。
"android-support-v4.jar"は、Windowsでは"/extras/android/ support/v4"に、Mac OSでは"/extras/android/compatibility/v4"に存在します。

3. 外部Jarとして"google-play-services.jar"と"android-support-v4.jar"を取り込む。
[プロジェクト(MainActivity)]→[プロパティ(R)]→[Javaのビルド・パス]と進むと[ライブラリー(L)]タブがあると思います。
その後、[外部 Jar 追加 (X)...]ボタンを押下し、[JARの選択]画面からEclipseのWorkspaceにあるGoogle Maps API Demos (MainActivity)の"libs"フォルダに進みます。
"google-play-services.jar"と"android-support-v4.jar"を選択し、[開く]ボタンを押下すれば完了です。
設定後は[プロパティ: MainActivity]画面を閉じます。

4. "MainActivity"と"google-play-services_lib"のクリーンビルド
[Eclipse]→[プロジェクト(P)]→[クリーン(N)...]から[クリーン]画面を開き、[以下で選択したプロジェクトをクリーン]ラジオボタンを選択し、"MainActivity"と"google-play-services_lib"のチェックボックスにチェックします。
[ビルドを即時に開始(B)]のチェックボックスをチェックし、[選択したプロジェクトのみビルド(P)]ラジオボタンを選択の上、[OK]ボタンを押下します。
※Eclipseで"/google-play-services_lib/bin/google-play-services_lib.jar"が存在しませんという警告が表示されていたのですが、クリーンビルドすることによって解決しました。

以上の作業が終われば、Eclipseで表示されまくりだった警告行も消え、すっきりしているのではないかと思います。
後は、Eclipseから実行すれば、USBで接続された実機でGoogle Maps API Demosが実行されるかと思います。

以上、備忘録でした( ̄∇ ̄)ノ♪