2011年11月3日 追記
ご注意!
Google Translate API v1が2011年12月1日にサービスが終了いたします。添付のサンプルソースでは、Google Translate API v1を利用していますので、翻訳が正常に機能しない場合がございます。ご承知おきください。
ご注意!
Google Translate API v1が2011年12月1日にサービスが終了いたします。添付のサンプルソースでは、Google Translate API v1を利用していますので、翻訳が正常に機能しない場合がございます。ご承知おきください。
Android Market公開を目指してAndroidアプリを開発する!(バックグランドで動作させる編)では、サービスを常駐させて、バックグラウンドでクリップボードの内容を翻訳する機能を実装しました。
前回のサンプルでは、翻訳が完了したことをユーザに通知するのに、翻訳結果をメッセージ表示するようにしましたが、他のやり方も試してみたいと思います。
翻訳完了時に、以下のようなアイコンが、
NotificationクラスとNotificationManagerクラスなどを使って、ディスプレイ最上部のツールバーに表示されるようにしました。
前回サンプルのTranslateServiceクラスを以下のように変更しました。
●変更前
public void run() { if (model.isSuccess()) { dao.insert(model); Toast.makeText(this, model.getTranslated(), Toast.LENGTH_SHORT).show(); } }
●変更後
public void run() { if (model.isSuccess()) { dao.insert(model); NotificationManager manager = (NotificationManager)(getApplicationContext().getSystemService(NOTIFICATION_SERVICE)); PendingIntent intent = PendingIntent.getActivity(this, 0, null, Intent.FLAG_ACTIVITY_NEW_TASK); Notification notification = new Notification(android.R.drawable.ic_menu_info_details, getText(R.string.app_name), System.currentTimeMillis()); notification.setLatestEventInfo(getApplicationContext(), getText(R.string.app_name), "translated!", intent); notification.flags = Notification.FLAG_AUTO_CANCEL; manager.notify(R.string.app_name, notification); } }
ツールバーに表示されたアイコンを、指で押さえて下にドラッグすると、
こんな感じになりました!スマートな通知の仕方になって、前より素敵になったと思います。
サンプルソース
- TranslatorSample11:ダウンロード
- サンプルソースには、Android Market公開を目指してAndroidアプリを開発する!(TextToSpeech日本語対応編)でご紹介した日本語読み上げライブラリをlibフォルダ配下にandroid-jatts-0.0.1.jarも含んでいますが、プロジェクトへの登録が再度必要ですので、ご注意ください。
- また、申し訳ないのですが、翻訳内容を確認する機能が実装されていません。翻訳内容を確認したい場合には、お手数ですが、Android Market公開を目指してAndroidアプリを開発する!(翻訳履歴参照編)のTranslatorSample6をご利用ください。