2014年11月25日火曜日

[Android]Email to Mmsでアドレスが追加できないというお話。

こんなお便りをいただきました。
「Email to Mmsの編集画面でアドレス追加しようとすると、電話帳が強制終了して追加できない」

というわけで調査メモ書こうかと思います。

★結果、連絡帳みたいなの自作しました
   ver1.1.8ベースで作ったものをおいと行きます

①根本原因
 EtoMにアドレス追加する為に、どこからかアドレスを取得する必要があるが、
 ACTION_PICKで他アプリにお任せしている。
 というわけで、強制終了するのはそのアプリが何かおかしい、としか言えない。
 電話帳アプリのExceptionのログがあればもう少しわかるかもしれないが。。。

 とりあえず、そのほかの方法でアドレス取得しないといけない。


②作戦1
「電話帳」アプリが、強制終了する原因は分からないので、別の連絡帳アプリを使ってアドレス取得するようにEtoMを作り替える

・ACTION_PICKに対応したアプリがない!
 別の連絡帳アプリをインストールしたが、ACTION_PICKでデフォルトアプリしか引っかからない。
 デフォルト設定されているわけではない。
 それで表示されないということは、そもそもACTION_PICKに対応していないことになる。

・一応、EtoMがちゃんと動いているか確認
 EtoMがACTION_PICKした時に他のアプリもあった場合、ちゃんと選択できるか確認。
 <方法>
  Android_ManifestにACTION_PICK追加
 <結果>
  問題なし。
  



 ということは、課題はACTION_PICKに対応したアプリを探すことに落ちたわけだが、
 み つ か ら な い
 しかし、対応しているアプリが少ない機能をのせてしまったのか。
 一応公式のAPIだし、問題ないはずだが需要が少ない?
 というか、みんな自分で実装するのか。

③次の作戦
 とりあえず思いついた手段を羅列する。
 ()は実装工数。
 1.ACTION_PICKに対応したアプリを探す(0.5day)
 2.AOSPのContactアプリを使ってどうにかする(2day)
 3.EtoMにACTION_PICK相当の処理を実装する(5day)
 4.EtoMの履歴画面をACTION_PICKに対応させる(1day)
 
 今回の件を根本的に解決しようとしたら、
 そもそもその機能を自分で実装しようの3になるわけだが、
 いかんせん時間がかかる。
 
 2はAOSPのContactをダウンスケールして、
 ACTION_PICKだけできるようにした何かに仕上げる方法。
 それにしても、ちらっと見たが治す量は多そう。
 ちなみにダウンスケールするのは、システムアプリ専用のAPIを多用しているせい。

 ともかく今回は、すぐできる対処をする方針にする。
 
④AOSPのContactって?
 パッケージ名は、com.google.android.contacts
 これ、パッケージ名が被らなきゃこのアプリでもいいのでは?
 Contact
 →駄目でした

 システムアプリでも、好きにインスコできるんだっけ?
 だったらパッケージ名だけ変えて無理やりインストールするということも。
 ⇒お試ししたけど、パッケージ名変更はなかなかえぐいことが判明。
 ⇒さらにお試ししたけど、えぐいくらい依存関係があることが分かった。
   何日かかるんでしょうね。
 
 この方法は、ちゃんと周辺調査やってからじゃないと危ない。うん。

⑤ 3.EtoMにACTION_PICK相当の処理を実装する(5day)
 正直、これが一番楽な気がしてきた。
 着手。

 多分一番のネックは、検索なんだと思う。
 
 お試し実装した

 これを本番のほうに取り込むには問題があって、
 一応EtmMはパーミッションなくても動くを目指していて、
 パーミッションが必要なものはpluginという形にしているわけで。
 
 というわけで、本番に取り込むのはもう少し後になりそう。
 とりあえず問題自体は解消!

6 件のコメント:

  1. 申し訳ありません、連絡方法が分からずこちらにコメントさせて頂きます。
    本日、いつも利用させて頂いていますEtMでメールを送ろうとしましたら送信ボタンを押しますとハングアウトには移動するのですが作成した本文が反映されず送信が出来ない状況になっております。
    先日、ハングアウトがバージョンアップされたのでそのせいでしょうか?
    どうにか送信出来る方法はありませんでしょうか???

    返信削除
    返信
    1. 沙琉様
      EtMの中の人、noriaです。
      日頃のご愛顧ありがとうございます。

      >作成した本文が反映されず送信が出来ない状況になっております。
      反映されない問題についてですが、
      ハングアウトに下書きがある場合、EtMのメッセージが反映されないことがあります。

      バージョン問題については、現行のバージョンで非再現なので問題ないと考えます。

      なのでまずは下書きが保存されてないか、保存されていたら削除を試して頂きたいです。

      これでも改善しない場合ご一報ください
       b.o.w.t.h.e.r@gmail.com

      削除
    2. 沙琉様
      EtMの中の人、noriaです

      >バージョン問題については、現行のバージョンで非再現なので問題ないと考えます。
      ハングアウトのバージョン2.5.81636427で、
      件名と本文がコピーされない現象確認できました。

      対策考えますので今しばらくお待ちください。

      削除
  2. コメント欄から失礼します。

    EtMを使って件名と本文を入力して送信したところ、受信者側に件名が表示されていないことがわかりました。 原因または対処方法がありましたら教えてください。

    YmobileのNexus5を使っています。

    返信削除
  3. 私も同じく、件名と本文を入力したのですが、件名がハングアウトに件名が反映されません。どうしたら良いのか教えて下さい。
    機種は、YmobileのstreamSを使用しています。

    返信削除
    返信
    1. 中の人、noriaです。
      件名が入力できない件についてですが、
      原因は、Googleハングアウトアプリのバージョンアップに伴う仕様変更があり、既存の方法での件名入力が出来なくなった為です。
      現在この問題に対してEtMアプリでの対処案がない状態です。

      代案として、
      ハングアウトには件名を入力する方法が用意されております。
      ハングアウトのメッセージ入力画面で添付ボタン(クリップアイコン)があると思いますが、
      こちらをロングタップしていただくと件名入力欄が追加されます。
      お試しください。

      削除