投稿

2月, 2009の投稿を表示しています

AlarmManager 2 定期的な間隔で繰り返し処理をするプログラム

イメージ
先日のエントリーで、AlarmManager#setを使った処理を記述しました。 setは、何月何日何時何分に処理をするといった時に使用します。毎日0時1秒に処理をしたいのであれば、BroadcastReceiverで再度setにて指定する必要があります。 上記のような処理ではなく、一定の間隔で処理を行いたい時は、setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)を使用します。 このメソッドでは、繰り返しブロードキャストレシーバーにメッセージを送る事ができ、AlarmManager#cancelされるまで永遠に繰り返します。( RSSReader や ポッドキャストプログラム でFeedを取得する時などに使用しています)。 13分間隔でBroadcastReciverを呼び出すプログラム(送り側)   Intent intent = new Intent(ctx, ReceiverIconChange.class);  intent.setAction(CALENDER_ICON_CHANGE);  PendingIntent sender = PendingIntent.getBroadcast(ctx, 0, intent, 0)  AlarmManager am = (AlarmManager)(ctx.getSystemService(ALARM_SERVICE));  long interval = 13 * 1000 * 60;  long firstTime = SystemClock.elapsedRealtime();  am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,firstTime, interval, mFeedService); 上記コードでは、初回に起動される時間を現在としています。 受け取り側のレシーバーは、昨日のAlarmManager1の記事とほぼ同じですが、アラームを再設定する必要がない所が異なります。 Service受取側 public class ReceiverIconChange extends BroadcastReceiver { public v

Android Rebootするアプリケーション

イメージ
開発時にあると便利なソフト Androidのemulatorは良くできていますが、細かなタイミングの違いや、エミュレータでは実装されていない機能を使用するために、DevPhoneでのデバック実行も良く行います。 またAndroid Marketから色々なソフトを落としてきて色々試したりするため、動作がもっさりとしてしまったりするため、電源OFF – 再起動は良くあることだと思います。 再起動後のみ発生するバグ(エミュレータでは発生しない)を修正するために、DevPhoneの電源OFF/ONを繰り返していたのですが、いい加減めんどくさくなって簡単にできないかと思い、Android Marketを検索したところ、DroidSans Tweak Tool というのを見つけました。 画面上ではリセットボタンが表示されてませんが、スクロールするとリセットボタンが出てきます。 ちょっとしたことですが、便利になりました。 Share on Tumblr Tweet

AlarmManager1 Android でCronみたいなことをするには

イメージ
Androidで常駐プロセス(deamon)みたいな事をするには、Serviceを利用しますが、指定した時間にアプリケーションを起動したい時は、AlarmManagerを使用します。 AlarmManager API ドキュメント 主なメソッド数は以下の3種類となります。 指定した時間に指定したPendingIntentを起動 指定した間隔で指定したPendingIntentを起動 指定たPendingIntentをキャンセルする。 起動する物としては、サービスやブロードキャストレシーバーが存在します。 また、AlarmManagerを使う上での注意事項もありますので順に記載していきたいと思います。 指定した時間にブロードキャストレシーバで受け取るプログラム Broadcast送り側 Intent intent = new Intent(ctx, ReceiverIconChange.class);intent.setAction(CALENDER_ICON_CHANGE);PendingIntent sender = PendingIntent.getBroadcast(ctx, 0, intent, 0);  AlarmManager am = (AlarmManager)(ctx.getSystemService(ALARM_SERVICE));    // 翌日00:00:01の時間を設定Calendar cal = Calendar.getInstance();cal.setTimeInMillis(currentTime);cal.add(Calendar.DATE, 1);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 1);am.set(AlarmManager.RTC_WAKEUP,aTimerInMillis,sender); 上記サンプルでは、翌日の0時00分01秒ににReceiverIconChange#onReviceメソッドが呼ばれます。 パラメータは、必須ではありませんが、パラメータが必要な場合は、setActionや、putExtra等で通常のIntentと同じように指定可能です。

Android tPodcast Demoをリリースしました

イメージ
PODCASTクライアントプログラムです。 音声、ビデオといったポッドキャストをダウンロードし再生が可能です。 私の使い方としては、朝出勤前に、日本経済新聞のポッドキャストを自動ダウンロードするように設定をしておき、電車で聞いています。 iPhoneで同じことをしようとすると、下記サイトでは、「サイズが大きすぎます」と言われてしまいPCなしでのダウンロードができません。 朝いちいちPCに接続することもなく、そのまま持ち出せばいいので非常に便利です。 日本経済新聞<総合版> http://nikkei.hi-ho.ne.jp/podcast/kiku4.xml ポッドキャストプログラムで作る過程で、さまざまなポッドキャスト配信サイトを調べましたが、流行がひと段落し衰退そしてiPhoneのヒットにより再度注目を浴びはじめているのが現状といえます。 ポッドキャストの情報については、 ポッドキャストジャーナル を参照されるのが良いと思います。 デモ版なので、2つのサイトしか登録できませんが、日常的に聞くPodcastサイトは2つもなく十分な感じがします。(新規サイトを追加する場合は、サンプルサイトを削除して追加してください) Android Market – News & Weatherもしくは下記のページからダウンロードできます。 詳細は、 tPodcastの紹介ページ を見てください。 画面はこんな感じです。 Share on Tumblr Tweet

Android Market 色々変わってます。

イメージ
有料アプリの配布とダウンロード開始が始まりましたが、Android関連のページがちょこちょこと変わっていました。 今回の変更ではなく、既に前から変更があったのかもしれませんが、私が気がついた点です。 PCから見たAndroid Market http://www.android.com/ は再構成されました。 当然有料アプリのリンクが追加されたりしています。 無料アプリ紹介ページでは、カテゴリを選択することで、トップ10のアプリケーションを見る事が可能になりました。 ランキングの計算方法も、以前のランキングでは、古くダウンロード数が多いソフトほど有利な状況でしたが、計算方法を変えたのか色々と変わってきています。 Media ROOM Media ROOMでは、へんなのを発見しました。 Show your developer pride by placing an “I’m an Android developer” badge on your blog or website. The badge procedurally generates unique Droids continuously until you move your mouse over. ということで、バッジを以下に貼ってみます What is Androidページ Time Lineのページとか、力が入っているのか入っていないんだかよくわからないページがあったりします。 いちいち紹介しても仕方がない事に気が付いたわけですが、一度ざっと見なおしてはいかがでしょうか? 有料アプリ公開について 日本の開発者としての私は、静観するしかないのですが、金、土、日とRSSReaderのダウンロード数が通常の10倍ぐらいになりました。 有料化を待っている人が暇つぶしにダウンロードしていたのでしょう。 それなりに人は集まっているようです。 Share on Tumblr Tweet

Android Terminalソフト

イメージ
開発していく上で便利なソフトの紹介です。 まず、必須といっていいのが、Terminal Emulatorソフト Android Marketのtoolカテゴリからダウンロード可能です。 画面を見てもらえれば、どんなソフトか一目瞭然です。 このソフトを使用して、アプリケーションディレクトリ/data/data/に入って、ファイルを確認したり、sqlite3コマンドを使用したりと非常に便利です。 電車の中や、出先で集中的にバグだし作業を行う事がありますが、非常に便利で愛用してます。 Tip パスワードなしでrootにもなれます(suコマンド) フォントが小さいので12ptぐらいに設定すると見やすいです 終了する時は、exitと打ち込みますが、終了させずに、開発中のアプリを動かして、再度Terminalに戻って動作確認をするといった事が可能 Share on Tumblr Tweet

Android Marketでアプリケーションの有料アプリ登録開始

イメージ
Android Marketでの有料アプリ登録開始の記事は、いろんな所で書かれていますので特に特筆する事はなし。 盛り上がっているのか、盛り下がっているのか微妙な状況です。 開発者の登録をGoogle Checkoutを利用して行うため、現在Google Checkoutにて出店できる国から対応になっていくのは当然の事で、現在対応になってない国、予定リストにも入っていない国の開発者は、文句たらたらです。 今後は、Android Market以外の有料ソフト配信サイトがにぎわっていくのでしょうか? 日本においても、3月末に対応するかは明記されていないので、どうなる事でしょう。 先が見えませんが、Android Marketサイトに以下の変更が加わりました。 既にAndroid Marketにてソフトウェアを登録している人は、一度見てみるといいと思います。 Upload an Application画面 Listing details アプリケーションの説明文章にドイツ語を登録する事が可能になりました。 この文章を書いてないと、空白になってしまうのか、それとも英語が表示されるのか、わかりませんので、とりあえず英語で記載しておくのが良いと思います。 Publishing options Off (Application can be copied from the device) On (Helps prevent copying of this application from the device. Increases the amount of memory required by users to install the application) んー、どのような仕組みでやるつもりなんでしょうか… Share on Tumblr Tweet

Android RSSReader v1.07 update

イメージ
ドイツ語のロケール対応になったおかげで、ドイツ人の活動がアクティブになっているようです。 RSSReaderに、ドイツ語対応してないと書かれており、調べたところ、特定のサイトのみの現象でした。 特定のサイトで文字化けを起こすだけで、非対応とされてしまうのはつらいところです。 特殊な処理を入れてアップデートしました。 しかし、なかなかAndroidMarketの有料化実現しませんね オーストラリアでの端末発売日の16日とそろえるのかなぁと思っていますが… Share on Tumblr Tweet

Android SDK 1.1_r1 リリース

イメージ
Anroid SDK 1.1r1がリリースされました。 実際に発売されている、AndroidG1のファームウエアが先日RC33になりましたが、これに対応したバージョンアップとなります。 しかし、DevPhoneのバージョンと、エミュレータのバージョンが合わなくなり、微妙な開発体制になりそうです。AndroidMarketのためにDevPhoneを買ったようなものですから、AndroidMarketさえどうにかなれば、DevPhoneにイメージを書き込むのですが…. Android のトップページ からたどると今までのダウンロードページに行ってしまいます。このあたりはこれから変わるのでしょうか…少しなぞです。 Android SDK 1.1のインストール さっそくアップグレードインストールをしたのでそのメモです。 といっても、アップデートの方法は前回の1.0rc2となんら変わりません。 以下のサイトからSDKをダウンロード download Android SDK 1.1_r1 ダウンロードした、android-sdk-windows-1.1_r1をc:\androidに解凍 エミュレータのデータを削除(emulator -wipe-data) 環境変数PATHを新しいSDKのディレクトリに変更 ADT Eclipse Pluginのアップデート Eclupseの設定画面で、SDKの場所を指定 とおこなって無事終了 すべて、 アップデートの方法 に書いてあるので、特に書くことがないです。 アップデートしたら、過去に作成したプロジェクトをクリーンアップして再ビルド 特に問題はでませんでした。 SDK1.1の変更点 Version1.1のリリースノート 先日AndroidMarketの機能アップの記事を書きましたが、もちろんAndroid Marketは入ってませんので関係ありません。 今後調査をするとすれば以下のあたりでしょうか… アプリケーションが動作する最少SDKバージョンの指定が可能 External Librariesが追加された。 ロケールに、en_USとdeが追加された。 2009/5/15 加筆 この記事はSDK1.0 r2時点の記事です。以下の記事も参考にしてください。 ブログ内のSDKインストール記事 android 開発環境構築 (SDK 1.0)

Android RC33とAndroid Market

イメージ
Android携帯G1のファームウエアがRC33になった。 RC33で追加されな機能は、色々なサイトで紹介されているので割愛するが 私が気になったのは、AndroidMarketアプリの機能追加 Mark this as Spam機能 AndroidMarketに書かれるコメントは様々で、1番書き込みー、2番書き込みー等のコメントは、かわいい物でどうでも良いのだが、「インストールできない」とか「ハングアップ」するとか、うその書き込みが多く存在する。 競合ソフトの作者による、明らかにばればれの書き込みもあり結構ひどい状況になっている。 この機能が付いた事である程度の抑止力になる点と、Googleが今後も対策を取っていくという姿勢で今後のAndroidMarketが変わってくると予想 Update Available 現在アプリケーションをバージョンアップしても、ユーザにバージョンアップしましたと通知する方法は、存在しない。 AndroidSDKには一時的な対処方法として、ソフト開発者側で作ってねとある。 今回の変更では、AndroidMarketアプリに、バージョンアップできるソフトに「Update available」と表示される。 この対応のおかげかRSSReaderのダウンロード数が少し伸びています。 何はともあれ、画面キャプチャーを見るのが一番分かりやすいです。 画面キャプチャーはこちら Share on Tumblr Tweet

Android RSSReader v1.06

イメージ
RSSReader v1.06をリリースしました。 RSSReaderは、最初からRSSReaderを作ろうとして作成したわけではなく、別のプログラムでfeed解析ロジックを作成したのですが、思いの他簡単にできてしまったので、ソースコードを切りだして作成した物です。 当初はさっさと作成して終了する予定ではいましたが、タイマー設定や、スレッド処理、サービス機能(deamon)、Notification、Broadcastと、簡単な機能を実装するだけでも、さまざまな物を調べる必要があり、地味なソフトの割には、色々な事をしているアプリケーションになってしまいました。 今回のv1.0.6で、サービスのプライオリティを下げる等、目立たないけれども重要な事項について、実装し終わりTODOに残しておいた物もほとんど終わりました。 RSSReaderのページはこちら http://www.taosoftware.co.jp/android/rssreader/ RSSReaderのメールでの要望等も落ち着いていますので、しばらくは別のアプリケーション作成に移ろうと思っております。 Share on Tumblr Tweet