Android Oneで連絡先が本体に保存できない

Y!Mobileから案内がきてPHSを終了し、ケータイへと移行するように求められた。 ちょうどPHSのキャンペーンが切れて費用が上昇したこともあって検討、結果残っていた2回線(元々の3G回線は転出済み)を両方ともケータイへと移行した。

この際、AQUOSケータイ2とAndroid One S2へと移行したのだが、Android One S2において連絡先の保存先に選択肢がなく、本体に保存、あるいはSIMカードに保存することができず、強制的にGoogleアカウントへの保存となってしまう。

これついて調べたが結論を得ることができず、Y!Mobile店舗で問い合わせたところ、Android OneあるいはNexusにおける仕様であるとのことだった。

恐らくこのほかにもGoogleと不可分になっている点は多いだろう。 出ていない情報だが、現状Y!MobileにはAndroid Oneしかないため、Y!Mobileを選択するかどうかの問題になってもくるだろう(Softbank中古端末や、SIMフリー端末を使用するという選択肢もあるが)。 気をつけてほしい。

Discordを使ってみた

Discordというアプリを知っているだろうか。 まぁ、だいたいの人は知らないだろう。

簡単に言えばSkypeのようなメッセンジャー+通話アプリであり、Discordは大声で「Skypeを投げ捨てろ!!」と言っている。 だが、単純にSkypeのようなアプリというわけではない。 ものすごく乱暴に言えばSkypeのような機能と、Slackに通話機能をつけたものを一体化させたものである。

通話とメッセージングのソフトウェア(例えばSkypeやLINE)と比べると結構複雑だ。 これは「2つの側面がある」と考えてもらうと良いだろう。

Slack的な部分

だが、まずSlackを知らない人が圧倒的に多いだろうからそこから説明しよう。

Slackは簡単にいえば共同作業用のチャットツールである。 「Slackのアカウント」というのは基本的に存在せず、「チーム」というのがその単位となる。 「チーム」はメンバーを招待することができ、招待された人はそのリンクを使ってメールアドレスを登録するとそのチームのメンバーとなることができる。 チームでの活動は、チームのアドレス、またはチーム名とメールアドレスを使って行う。

メンバーにはプロフィールがあるが、プロフィールもチームごとに設定する必要がある。 逆にいえば、チームの性質によって異なるプロフィールを使うことができる。 メンバーにはロール(役割)を与えることができ、メンバーを追放する、チャンネルを作成するなどの権限を分けることができる。

チームにはチャンネルがある。 全体の発言は#generalというチャンネルで行うが、チャンネルを作成すれば、話題を分けたり、閲覧できるメンバーや発言できるメンバーを制限することができる。 基本的には議題ごと、あるいはチーム内のメンバー区分ごとにチャンネルでやりとりをすることになる。 メンション機能もあるが、これは特定の人だけにメッセージが届くわけではなく、特定の人に通知を飛ばすだけである。 ユーザーグループというのもあるが、これはメンションを飛ばす時に複数人をまとめて書いたり、チャンネルに加えるときにまとめて書くための機能。

Slackは主にIT企業の業務で使われていて、ビジネスツールというニュアンスが強い。 社内でのやりとりとしてはメールなんかよりよっぽどいいのは確かだと思う。

ただ、逆に言えばそれ以外では全然使われていない。もともとゲーム用のツールだったなんてことは、ほぼ忘れ去られている(私も知らなかった)。

しかし、実のところ、マメ派のカップルにはかなり良いと思うのだ。 デートの予定やイベントの計画、今日の買い物といった話題をLINEでやりとりしていると、どんな話をしていたか確認するのが大変になってくる。 LINEはログをさかのぼりにくいし、ノートに立てていればいいのだが、LINE for Chromeはノート機能がなかったりするし、明確に議題を定めてから話がはじまるとは限らない。 そもそもノートも増えてくると議論には向いていないことになる。 なので、Slackで#date, #event, #todoなどチャンネルを作っておけばスムーズにやりとりや確認ができてとても便利だ。

ところが、LINEを投げ捨ててSlackにいけない理由がある。 まず、割とSlackの通知はまちまちで、あまりリアルタイムではこない。マメ派カップルにとっては割と致命的だ。 しかも通話機能もない。ラブラブなカップルにとってはますますもって致命的だ。

ここでDiscordである。

DiscordはこのあたりはだいたいSlackと同じだ。 大きな違いとして、Slackで「チーム」と呼んでいるものは「サーバー」という名前に変わっている。 そして、通話機能がある。

通話機能がちょっと独特で、1名でも通話をはじめられる。 チャットのように(特にIRCのように)、「通話チャンネルに入っている人が自動的に通話する」という方式だ。 途中参加もできるし、途中離脱もできる。というか、最後ひとりになっても勝手には切れない。 通話チャンネルも複数作ることができる。

また、雑音を積極的に検出し、しゃべっていない時はマイクを切るようになっている。 プッシュトゥトークにすることもできるので、大勢参加していてもノイズまみれにならないようになっている。 これは便利だ。

また、SkypeやHangoutsのグループトークにない機能として、ユーザーごとに音量設定できる。 声の小さい人を大きく、声の大きい人を小さく。好きな人を大きく、嫌いな人を小さくすることが可能だ。

そして重要な違いとして、Slackと違ってちゃんとすぐに通知がくる。

Skype的な部分

だが、Discordの場合はユーザーアカウントがある。

そのため、複数のデバイスでDiscordを使用した場合、自分が参加しているサーバーはすべて一覧されるし、招待するときはユーザー名とDiscord番号の組み合わせで行う。 フレンド登録もできる。プロフィールや名前もサーバーごとというわけではない。

さらにフレンド登録すると、ダイレクトメッセージとダイレクトコールが可能になる。 これはSkypeやLINEのように、人単位でメッセージを飛ばしたり、通話したりすることができるのだ。

ただし、Skypeにあるビデオ通話や画面の共有は、実装予定の機能となっており現在はない。 これを書いている今日テストがスタートしたようだが。

また通話手順がちょっと複雑だ。Discordがフロントにある場合は普通に通話がかかってくる。 ただし、通話をかけた側は通話画面にはならず、右下にあるVoiceの矢印で開かなければチャット画面での通話になる。 これは通話を受けた場合も同様。

また、通話を切っても残った側の通話は自動的には切れない。これはサーバーの場合と同じである。

なんらかの理由で最初からチャット画面に変遷した場合(通知から飛んだ場合などだ)、まずDM画面にいき、JOINをタップしたあと、Connect to Voiceを選択しないと通話に参加できない。 これはなかなかややこしい。

グループDM機能があり、これは招待もなにもなく、グループDMを作成すると招待された全員が自動的に参加する。 グループDMはフレンドリストに登録される。グループから退出したり、グループに追加で招待することは可能。 退出してもすぐ招待されるようなことが起きるとちょっと面倒。最後のひとりになってもグループ自体は消えない。

スタンプ機能はない。写真埋め込みは可能。

Slackに対するメリットとして、日本語に対応している。 Slackが便利でもインターフェイスは英語に限られていたSlackは敷居が高いという人が多かった。

また、ちゃんとしたクロスプラットフォームアプリがあるということも大きい。Slackの場合はアプリケーションもいまひとつだ。

また、Slackのように有料プランがあって、機能が制限されているというわけでもない。

もっと便利な部分

Discordはゲストログインが可能で、サーバーを作ってアドレスを伝えれば、相手がDiscordのアカウントを作らないまま通話することができる。 しかもDiscordにはWeb版があるので、共通の通話可能なアプリがない、あるいはアカウントを教えたくない場合でも通話することが可能だ。 かなり特殊な要求だとは思うが。

残念な部分

通知のオンオフはできるのだが、通知音は変更できない。

ゲーマー向け

Discordがゲーマー向けということで、ゲーマー以外で使っている人をみかけることがない。

オンラインゲームでは多人数協力プレイができたりするので、通話しながら意思疎通ができたほうがスムーズにプレイできるのだ。 従来はSkypeを使っていたようだが、最近SkypeがどんどんダメになっているのでDiscordに移っている人が多いらしい。

だが、微妙にバグはあるが、SkypeもLINEもXMPPも投げ捨ててDiscordで生きていけるくらいには便利である。 実用上の話であって、かわいいスタンプが好きな人は辛いかもしれないが。

ゲーム中は特に言うことがなければ黙っているだろうし、発言者のみ聞こえるようになっているのはこのためだろう。 割とキーノイズもするわけだし。

バグ

3つのバグを発見した。

通話通知がおかしい

P02E(Android 4.1.2)だと、通知音が通話でもメッセージのものになってしまい、一度鳴るだけで終わってしまう。

アプリを殺すと通知されない

CM Securityでクリーンアップしてしまうと通知は届かない。 これはNotifications wake up device.をオンにしていてもダメだ。

なかなか恐ろしい通話ループ

  1. AがBに書ける
  2. Bが出る前にAが切る
  3. Bが通知エリアから通話に出る
  4. BにAからかかってきたと表示される。「出ない」ことができない
  5. Bが通話に参加するとAに呼び出しがかかる。こちらも「出ない」ことができない
  6. BがAが出る前に切ったら立場を入れ替えて3にループする

みんなDiscordしようぜ

良い点

  • SlackとSkypeの合体とか超魅力
  • 日本サーバーのないWebRTCとは思えないほど音が良い
  • Windows, Mac, Linux, Android, iOSに対応
  • ちゃんと通知される
  • 画像も貼れる
  • グループDMやグループ通話もできる
  • Skypeよりはるかに軽い
  • 話題を分けて整理することができる
  • グループの中で特定の人に呼びかけることができる
  • 運営が透明で技術的にも透明
  • 登録も簡単でゲスト利用も可能、個人情報も要求されない

悪い点

  • 若干複雑
  • ちょっとバグがある
  • 通知音の設定ができない
  • 個人情報もいらないので尻尾切りのような残虐行為が気軽にできてしまう
  • キモいスタンプが使えない

Nexus7初期化とAndroid5

もらいもののNexus7 2012だが、設定はぐちゃぐちゃ、バッテリーの消耗も激しく使い物にならなかった。
そこで初期化した。

初期化手順は、シャットダウンし、電源ボタンとボリュームダウンボタンを長押しして起動し、Recovery modeを指定し、電源ボタンとボリュームアップボタン同時押しでメニューを出し、factory reset。

これでかなり快適な動作になったし、バッテリーももつようになった。Nexus7 2012ってこういう端末だったんだなぁ、といった感じだ。

そして、順次システムアップデートが降ってくるので適用していく。最終的には5.1.1で落ち着いた。

Nexus7にAndorid5(lolipop)は重すぎるという話があるのだが(そのために初期化したという人も多いようだ)、ざっと印象としては

  • UIはよくなったし、部分的に高速化した
  • ホームスクリーンがAndroidコンポーネントでないため、あんまり変わったという感じはない
  • 著しく重い時が結構ある。重くなると使い物にならないくらいにもっさりする
  • 一度、起床後に触ったらフリーズしたことがある

Googleの邪悪さをみた

私は邪悪になってしまったGoogleが嫌いだ。Appleはもっと嫌いだし、Duck Duck GoやTizenやFirefox OSが十分なレベルに到達してくれないため、なかなか切り捨てるのは困難だが…

先日、スマートフォンのアップデートをしたところ、回復用に電話番号を送信しろという。戻るキーをタップしても抜けてくれず、次に進むと問答無用で電話番号を勝手に取得して送ってしまう。同意確認は一切ない。

どうやらGMailのアップデートによるらしいのだが、そもそも私はGMailのアップデートを選択していない。裏で勝手にアップデートして、電話番号を送らなければ使わせないぞ、というわけだ。

さらに、その件があってから、GMailは常時起動するようになってしまった。私はGMailを使っていないし、常時通信するアプリを入れておきたくないのだが。

だが、それを排除しようにもGMailはアンインストールできないという。中核アプリだから、というのだが、スマートフォンの構成にGMailが不可欠である、というのは説得力があまりにも欠けている。

アップデートを削除したあと、無効化することができる、ということがわかったのだが、アップデートを削除すると、「全てのアップデートは削除され、出荷時の状態に戻ります」的なことを言ってくる。そのアプリに限った話なのか特定しづらいため、二の足を踏む。

実に邪悪だ…

ケータイのメール、eメール、VPS

ケータイのメールに関する設計がおおよそ固まった。結構複雑な構成なので試行錯誤となったが、いい感じになった。なお、今回は一般ユーザーが真似するのは難しい話になるが、一般ユーザーでも応用可能な方法を最後に紹介する。

やり方

まず、ケータイはWILLCOMのフィーチャーフォン(A)とスマートフォン(B)の2台だ。主にAを使用しており、現在のところBの用途は定まっていない。これは、Bのほうが多様に使うため、バッテリー的な理由だ。

「ケータイアドレス」はA、B共にある。Aはもちろん、Bも届くと直ちに自動で受信される。着メロや振り分けにも対応する。

基本的にケータイのメールをPCで扱いたい。打つのもバックアップもそのほうがずっと楽だ。そのような理由でまずメールの転送を考えるのだが、Aは転送ができるが、WILLCOMのスマートフォンであるBは転送できない。Yahoo Mobile Mailに属するサービスなので、恐らくソフトバンクでもできない。これは困った。

まずVPSのaliasを使ってケータイのバックアップ用のアドレスを作る。単純に共有するには、Aから転送されるそのaliasでPCとBに送るようにすればいい。だがこの場合、Bに送られたメールは孤立する。Bは転送できないため、この問題をこのアプローチで解消できない。

そこで、メール機能の設定でReply-Toヘッダを入れるようにし、返信時に他のアドレスに届くようにする。その受信アドレスはAliasとし、PCとスマホに転送する。

ここまでを実現するには次のことをしなくてはいけない

  • スマホのアドレスを教える時は転送用のアドレスも一緒に教え、送る時はそちらのアドレスに送るように頼む
  • PCからのメールを受信できるようにしてもらう
  • なりすまし防止機能をoffにする。でないとPCからケータイのアドレスで送った時にはじかれる(ソフトバンク、WILLCOMでは必須の設定)

オープンに使うには相手に頼まなくてはいけないことが多く、ややハードルが高い。クローズドなアドレス向きだ。

だが、これではAに送られたメールはAliasによってBとPCに行く。だが、Bで返信してしまうとAにはいかない。もしこれでAに行くようにしてしまうとループする。AのメールをBで扱うことができない。BのメールをAで扱いたいことはさすがにないと思うが、Aの絶望的な入力効率を考えると、バッテリーを気にしなくていい状況ではBで打ちたいところだ。

そこで、Android端末であるBにK-9 Mailを入れた。これはIMAPマルチアカウント対応のMUAである。これがなかなかすぐれもので、アカウント設定に加えて送信メールアカウントを設定できる。Aliasを使っている場合、ひとつのIMAPメールボックスに配送されるが、アドレスはひとつでないという状況になるわけだが、IMAPメールボックスのみを設定し、その上でそのメールボックスに追加のメールアドレスを設定するだけで対応できるのだ。

送信アドレスごとの署名、SSL/STARTTLSの設定、ポート設定など結構細やかにできる。複数のIMAPアカウントにも対応し、扱いやすい。K-9 Mailのアドレス帳はスマホのものをそのまま使用する。

だが当然ながらこのメールボックスPCで扱っている時もあるし、同期してほしくない時がある。なぜか「同期しない」設定にしているとリアルタイムに同期されてしまう。これは結構困る。同期設定はアカウントごとに可能だ。

方法としては、同期して欲しい時はグローバル設定で同期設定を「常に」、してほしくない時は「しない」に切り替えることでそれをコントロールできる。これでかなりいい感じになる。

そしてIMAPアカウントとしてAから転送されるアカウントを設定し、送信アカウントとしてAのメールアドレスを設定すれば完了だ。標準でストアする送信済みメールは自動で消されてしまうので、フォルダの設定でIMAPフォルダを指定しておく(普通はsentだろう)。

BからAのメールを扱う時はK-9 Mailを起動する。この方法の欠点は、K-9 Mailができる通知は通知だけなので、誰からメールがきたかによって通知方法を変えることができない。ランプ色や着信音などだ。もちろん、Bに直接送られたメールについては問題ない。

VPSを用いない応用

柔軟かつ簡単に設定でき、管理もできるということでVPSのアドレスを使っているが、それが嫌なら方法はある。

転送ができるアドレスと、IMAPアクセスができるアドレスを用意する。転送ができるアドレスは複数アドレスへの転送ができなくてはいけない。転送用アドレスは1つでいい。BとPCに転送されるようにすれば、Aのほうは転送設定ができるので、転送設定でその転送アドレスを指定すれば両方に、PCだけを設定すればAとPCに届くようになる。Bは転送アドレスをそのまま使う。

あとはIMAPアクセスすれば良い。Yahooは猛烈にレスポンスが悪いのでオススメしない。IMAPメールボックスはかなり遅いところが多い。VPSのものとは雲泥の差だ。

早いのはGMailだが、GMailはあまり好きでない。GMailを使えばK-9 MailでなくGMailの純正クライアントを使うこともできる。