’AndroidのRingtoneManagerの動作を確認するサンプルAndroidでRingtoneManagerという着信音、アラーム音などを操作するクラスがあります。今回はその使用方法を確認するサンプルです。ソースは、githubに「SampleRingtone」でアップしてあります。端末にインストールされている一覧を取得する方法です。これでどのようなRingtoneが端末にインストールされているか確認できます。次に「RingtoneManager.ACTION_RINGTONE_PICKER」が用意されているので呼び出して使用する方法です。呼び出すとこのような画面が表示されます。これを表示させるコードがこれです。選択してOKを押した場合のデータ取得方法がこちらです。「onActivityResult」を利用します。6行目の内容で対象のURIが取得できます。取得したURIを使用して対象のRingtoneオブジェクトのインスタンスを取得して操作します。いう操作があるかは、RingtoneManagerとRingtoneのJavaDocを参照してください。07/11コメントを書くAndroidでAlarmManagerの動作を確認するサンプルプログラムAlarmManagerの追加方を調べる為にサンプル作りました。ソースコードはgithubに「SampleAlarm」でアップしてあります。以下のソースで、AlarmManagerをセットできます。呼び出したいreceiverのクラスに対するIntentのインスタンスを生成します。作成したIntentをPendingIntentでラップします。Calendarクラスを使用して通知したい時間のミリ秒を取得します。AlarmManagerを生成して、どのようなタイプのアラームにするか?、いつ起動するか?、起動時に通知するIntentは?という情報をAlarmManagerに設定します。設定された時間が来ると、指定したレシーバーに通知が送信され起動します。通知のタイプELAPSED_REALTIME端末が起動してからの時間(SystemClock.elapsedRealtime()からの経過ミリ秒)で時間を指定する。スリープ状態では通知されない。(スリープが解除されるまで通知されない)ELAPSED_REALTIME_WAKEUP端末が起動してからの時間(SystemClock.elapsedRealtime()からの経過ミリ秒)で時間を指定する。スリープ状態の場合、スリープを解除する。RTCUTCでの時間(System.currentTimeMillis()からの経過ミリ秒)で時間を指定する。スリープ状態では通知されない。(スリープが解除されるまで通知されない)RTC_WAKEUPUTCでの時間(System.currentTimeMillis()からの経過ミリ秒)で時間を指定する。スリープ状態の場合、スリープを解除する。07/09コメントを書くAndroidのBOOT_COMPLETEDの受信とテストAndroidアプリで、端末を立ち上げた時にサービスを起動させたい時があると思います。android.intent.action.BOOT_COMPLETED」とターミナルから実行して「BOOT_COMPLETED」actionを発生させます。これで、受信出来ると思いきや、AndroidManifest.xmlの記述によって上手く受信出来る場合と、失敗する場合があるので報告です。githubにテスト用のサンプルプログラム「SampleBootCompleted」をアップしました。上手くいく場合が、こちらです。<receiver>のタグに「android:permission=”android.permission.RECEIVE_BOOT_COMPLETED”」を記述しない方法です。失敗するのが、以下<receiver>のタグに「android:permission=”android.permission.RECEIVE_BOOT_COMPLETED”」を記述する方法です。shell」でテスト使用とする場合は注意しないとはまるので注意が必要です。なんでだろ?バグなのかな。実際の動作では大丈夫なのでテストがメンドイだけですが。O」)余分なimport文の削除も行ってくれるので、意外と使える。1Androidでのlayout_weight=”1′′を設定する場合のwrap_contentの設定Androidのレイアウト用のxmlで、画面の幅を割合で表示させる為に、「layout_weight」を使用する場合があるとおもいます。この時によく、以下のように設定する事があると思います。これは、「layout_weight=”1′′」を設定している要素に「layout_width=”wrap_content”」を設定しています。実はこれが無駄らしいのです。(こちら参照)というのも、wrap_contentの幅の計算と、layout_weightでの幅計算が両方行われてしまうかららしいのです。表示のパフォーマンスを向上させる為には、以下のように設定したほうがいいそうです。Androidのドキュメントを読みなおしてみると知らない事が結構書かれているので、一度読んでみると面白いと思います。NAVI«12345678910»INFORMATION最近、Arduinoに興味あります。