タブ区切りのメール出力について

1,464 views
Skip to first unread message

あんこ

unread,
Mar 25, 2014, 9:26:49 PM3/25/14
to android-g...@googlegroups.com
こんにちは。

入力した内容をメールの本文に記述して送信し、
その内容をユーザがEXCELに貼り付けるといった作業を想定しています。

その際、EXCELに貼り付ける時タブ区切りで無いと標準で、
1つ1つのセルに項目が収まらない現象が発生します。
(区切り位置の設定をすれば、いいのですが、1工程発生するのが
手間とユーザに言われてしまいました・・・)

そこで、プログラムに、

//タブ区切りに変更
data = cursor.getString(0) + "\t" + cursor.getString(1) + "\t" + cursor.getString(2) + "\t" + cursor.getString(3) + "\n"; 
   
Uri uri = Uri.parse("mailto:x...@xxx.co.jp"); 
Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
it.putExtra(Intent.EXTRA_SUBJECT, "データ送信"); 
it.putExtra(Intent.EXTRA_TEXT, data); 
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(it); 

と記述し、起動したメーラーの本文に載せたのですが、
タブが無効になってしまいます。
(デバッグでプログラム中では有効っぽいのですが・・・。
メールを見ると、普通のスペースになっている感じです。)

機種はNexus7で立ち上がるメーラーはGmailです。
(メーラーはGmailが自動的に立ち上がります。)

何か、タブが有効になる手段などご存知でしょうか?
どうぞ、よろしくお願い致します。

Shigeo Mutoh

unread,
Mar 25, 2014, 11:10:22 PM3/25/14
to android-g...@googlegroups.com
武藤です。

まず、何か業務システムの一部としてなら、根本的に見直すべきは業務フロー
なのではないかという思いはあるのですが、コンサルじゃないので忘れます。

メール本文にデータを載せてしまうと、メーラが勝手に良かれと思って加工
してしまうことがあります。
例えば、このMLでも頻繁にソースコード中のタブやスペースが削除され投稿
される現象が度々見受けられます。

なのでメールにファイルを添付する方が良いと思います。
http://www.cyber-funnel.com/android/index1711.html
にあるように、Uri.fromFile()で指定すれば良いようです。

ただし、添付するファイルを作成するディレクトリは、Activity.getCacheDir()
で取得したものを使用するなど、一時ファイルとして妥当な場所はどこかは検討
すべきです。

あと、suffixをtsvにしておいて、受信したユーザーさんがダブルクリックする
と新しいシートが開き、そこからコピペする運用が許されるかはわかりません。

では。


あんこ

unread,
Mar 27, 2014, 5:41:04 AM3/27/14
to android-g...@googlegroups.com
武藤様

お世話になっております。
早急なお返事、ありがとうございます。

まだ実装はしていないのですが、やってみたいと思います!
おそらく添付ファイルの方法で上手く行きそうです。

実装に時間がかかってたのは、
Gmailでは、txtの添付ができず、どうしたものか?と考えていたのです。

Gmailは4.7だとほとんどのファイルが添付できるようですが、
Androidのバージョンも4.3以降にしないとならないみたいですね。。。
(使用しているNexus7は2012なので、GmailもAndroidのバージョンも古かったのです・・・)

本当にありがとうございました。
またお世話になる事もあると思いますが、その際は、どうぞ、よろしくお願い致します。

飯塚康至

unread,
Mar 27, 2014, 6:50:56 AM3/27/14
to 日本Androidの会
お疲れ様です。飯塚です。普通に添付できると思いますよ。
http://www.cyber-funnel.com/android/index1711.html

2014年3月27日 18:41 あんこ <android.n...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
>
> このグループから退会し、グループからのメールの配信を停止するには
> android-group-j...@googlegroups.com にメールを送信してください。
> このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
以上、宜しくお願いします。

飯塚 康至

Hirokazu Fukami

unread,
Mar 27, 2014, 7:27:16 AM3/27/14
to android-g...@googlegroups.com
こんばんはfkmです。

回答はずしてたらすいません。

Gmail(他のメールアプリ)に、自分のアプリで添付ファイルを付けたい時は
Gmailが読める位置(ExternalStorage)にファイルを置く必要があります。

getCacheDir()などは確か他のアプリは読めないので注意。
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

Shigeo Mutoh

unread,
Mar 27, 2014, 11:57:57 AM3/27/14
to android-g...@googlegroups.com
武藤です。

(2014/03/27 20:27), Hirokazu Fukami wrote:
> getCacheDir()などは確か他のアプリは読めないので注意。

ナイスな指摘ですねー。

では。

あんこ

unread,
Mar 30, 2014, 10:07:33 PM3/30/14
to android-g...@googlegroups.com, iiz...@aa.mbn.or.jp
飯塚様

アドバイス、ありがとうございます。
リンク先のソースを使うと、添付は出来るのですが、いざ、送信を行うと、
「添付ファイルは送信できません」とメッセージが表示され、届いたメールにも添付ファイルが削除されています。。。

あんこ

unread,
Mar 30, 2014, 10:27:11 PM3/30/14
to android-g...@googlegroups.com
fkm様

ご回答頂き、ありがとうございます。
やはり添付は出来るのですが、送信ができません。
(送信すると、「添付ファイルは送信できません」と表示されてしまいます・・・。)

Gmailが読める位置(ExternalStorage)が分からなかったので、とりあえず、
下記のように試してみました。

【CASE1】
①普通にメールを作成し、「ファイルを添付」を選択
②「最近」タブに画像Aがあったのでそれを添付
③メール本文に添付した画像が貼り付けてあり、送信
⇒ちゃんと送信されて、受信もできました。

【CASE2】
①プログラムでGmailを起動
②上記と同じ画像Aを添付するようにプログラムで書いてあるので、画像Aが自動的に添付される。
※ただし、こちらはメール本文に画像Aが添付されるものの、プレビュー表示がされていませんでした。
③メール送信
⇒やはり、「添付ファイルは送信できません」とと表示され送れず・・・


プログラムから添付ですと、何かに引っかかってるのでしょうか・・・。
もし考えられる回避方法などご存知でしたら、ご教授頂けたら幸いです・・・。
あともう一歩なのですが・・・

Hirokazu Fukami

unread,
Mar 30, 2014, 10:47:57 PM3/30/14
to android-g...@googlegroups.com
こんにちはfkmです

もう少し具体的に書いちゃいます。
アプリで添付用のファイルを保存していると思うのですが、この時
こんな感じで保存してみてください。

File file = new
File(Environment.getExternalStoragePublicDirectory("attach"),
"file.txt");
// あとはこのfileに対して書き込みを行う

// intent作成
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));

getExternalStoragePublicDirectory()を使うのがポイントです。
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> android-group-j...@googlegroups.com にメールを送信してください。
> このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--

あんこ

unread,
Apr 1, 2014, 4:55:55 AM4/1/14
to android-g...@googlegroups.com
fkm様

お世話になっております。
早々のお返事、ありがとうございます。

ご指摘の通り、Environment.getExternalStoragePublicDirectoryでの指定で出来ました!
(自分は、mnt/~と書いていたのでダメだったみたいです・・・

余談ではありますが、その後、ファイルへの書き込みで苦戦しましたが・・・(汗)

無事に要望に対するアプリ改訂が出来ました!

まだまだいろいろ勉強していきつつ、
改めてお世話になる事もあるかと思いますが、どうぞ、よろしくお願い致します。

心より感謝致します。本当に、ありがとうございました。
Reply all
Reply to author
Forward
0 new messages