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をご利用ください。
