2008-06-14

WhereNow更新

WhereNowを更新しました。
例によってデータファイルは含まれていませんので、初めてダウンロードして頂く場合は別途住所データをダウンロードしてください。
 
変更点は以下の2点です。
 
1つめ
設定画面で住所データの場所を指定するときにgsGetFile.dllを利用できるように変更しました。
 
また、モバイルGoogleマップの場所も指定できるようになっています。(こちらはgsGetFile.dll必須になります)
Today画面にモバイルGoogleマップ起動用のアイコンを表示させたくない場合はここを空欄にしてください。

 
2つめ
タップ&ホールドで表示されるポップアップメニューに「住所をコピー」と「メール作成」を追加しました。
 
「住所をコピー」を選択すると 表示している住所をクリップボードにコピーします。
「メール作成」を選択すると 表示している住所と座標を指定したGoogleマップのURLをメールソフトに渡します。

 
クリップボードへのコピーは SDKのサンプルの中になかったのですが、検索するといくつかのサンプルを見つけることができました。
ところがサンプルの通りにしてもコピーした住所が文字化けしてしまいます。
 
原因はクリップボードにデータを渡す SetClipboardData()の部分。
Windows Mobileは UNICODEが基本なので CF_TEXTではなく CF_UNICODETEXTとしてやる必要がありました。
 
HGLOBAL hGlobal = NULL;
PTCHAR  pszStr  = NULL;

hGlobal = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, (ADDRESS_SIZE * 2 + 1) * sizeof(TCHAR));
if (!hGlobal) break;

pszStr = (PTCHAR)GlobalLock(hGlobal);

wsprintf(pszStr, _T("%s%s"), g_szAddress1, g_szAddress2);
GlobalUnlock(hGlobal);

if (!OpenClipboard(NULL)) {
    GlobalFree(hGlobal);
    break;
}                    
EmptyClipboard();
//SetClipboardData(CF_TEXT, hGlobal); ← これはダメ
SetClipboardData(CF_UNICODETEXT, hGlobal);
CloseClipboard();
 
メール送信はMAILTO:の機能を使ってメールソフトに件名と本文を渡しています。
メーラが対応していれば、本文に現在の住所とGoogleマップのURLが表示されると思います。
 
モバイルGoogleマップにも同様の機能がありますが、WhereNowを使うと座標指定されたURLが本文に張り付けられるので相手に現在位置を教えたいときに便利なのではないでしょうか。(携帯で見るのはツライかもしれませんが...)
 
尚、本来は件名や本文は全てURLエンコードすべきだと思うのですが、手抜きをして"?"や","等の最低限の文字しか置き換えていません。
少なくともW-ZERO3メールでは正常に表示してくれていますが、メーラによっては正しく表示できないものもあるかもしれません。
 

6 件のコメント:

d346prt さんのコメント...

更新お疲れ様です。
早速試してみました。

・ダイアログの件、テスト版と同じ動作であること。
・GoogleMapsのパス未指定で、アイコン非表示。
・Mailtoでのメーラー(W-ZERO3メール)との連携。

どれも、問題なく動作しました。
バッチリです!(^^)/

GoogleMapsのパス指定での表示/非表示は、一度WhereNowを無効にしてから再度有効化しないと反映されないので、試される方は気を付けた方が良いですね。
これに関しては、頻繁に切り替えるわけでもないので、Reloadしない今の仕様の方が軽くて好ましいと思います。


そもそも、Todayに色々な情報を表示できるのがWM機の醍醐味だと思っているのですが、無闇にアイテムを追加すると重くなってしまうのが玉に瑕なので、WhereNowの様に軽くて有用なアプリはとてもありがたいです。

kazuaki さんのコメント...

d346prtさん こんばんは。
ご確認ありがとうございます。

Googleマップのパスの件は gsGetFile.dllに対応するついでにつけた機能だったので確認が足りていませんでした(汗
個人的にはボタンは表示にしているので、別の修正をするときにでも確認するようにします。

通りすがり さんのコメント...

バージョンアップお疲れ様です。
GoogleMapsも含め、特に問題もなく動いております。

移動中やたら意味も無く住所を取得して遊んでおります(笑)

ありがとうございました。

kazuaki さんのコメント...

通りすがりさん こんばんは。

面倒そうな機能は無意識に避けてしまいがちなのですが、通りすがりさんのおかげでクリップボードの使い方を勉強することができました(笑

何か面白そうな使い方があれば また教えてください。

星羽 さんのコメント...

初めまして(ぺこり
WhereNowをアドエスで試してみました。
Today画面からすぐ現在地の住所を確認できるのはお手軽で便利ですね♪

ただ、個人的に気になったのは、取得した住所がずっとToday画面に表示されたままなので、プライバシー上あまり気持ちのいいものではないかもと(←私が神経質がだけかもしれませんけどね(^^;)

なので、もし可能でしたら、ポップアップメニューに「表示の初期化」という感じのメニューを追加していただいて、それを選択したら「W-SIMを使用して現在位置を検索します」という初期表示状態に戻すことができると、個人的には嬉しいです。

あと、ネット接続中に現在位置を検索すると無反応でしたので、ネット接続中だった場合にはその旨をエラーメッセージで表示して、可能ならWhereNow側からネット切断後に現在位置を検索できると、ユーザーに親切かなと思います。

以上、もし実現可能で、あってもいいかもと思っていただけましたら、何かの機会にでもついでに実装していただけると大変嬉しいですm(__)m

kazuaki さんのコメント...

星羽さん こんばんは。

初めまして。
いつも参考にさせて頂いています。

通信中に取得にいくと反応が無くなる件、気づいてはいたんですが無意識に避けていました。
まさに先週くらいに星羽さんが取り上げていたお話ですね(笑

確かにToday画面で反応無しになるのは問題なので表示の初期化の件とあわせて修正してみます。

またお気づきの点があれば教えてください。