Notification から Activity を呼び出しても履歴が残らないようにする方法

Notification からアプリを起動すると、どんどんバックグランドに
タスクがたまり、Back ボタンでアプリを終了してもなんども同じ
画面がでるというバグのような状態になる
この対処法は2つ
1 PendingIntent を生成する際に設定できるフラグで制御する「
2、AndroidManifest.xml の Activity の指定で1つしか起動できないようにする
どちらかというと
AndroidManifest.xml の中に記述したほうが楽
やり方は
Activity タグの中に
android:launchMode=”singleTask”
を追記すればOK

Android のパーミッションシステム

Andoid には、ユーザ定義のパーミッション権限があります
Linux をつかっているとよく目にします
この機能は、セキュリティ関連でつけられています
例えば、Android アプリが無断で端末にアクセスできないように
したりという設定です
この設定は
Android アプリの中の
AndroidManifest.xml
の中に
users-permission1 で定義します
この設定をしておくと
アプリをインストールするときに、ユーザに勧告するようです
エミュレータで実験したかったのですが
わからず、検索してもまだみつかっていないため
この機能についてはまだ検証できていません
英語のサイトになりますが
Manifest.permission
に一覧らしきものが載っています
ちなみに、一部紹介をすると
android.permission.READ_PHONE_STATE
電話の状態を読み取る

android.permission.INTERNET

完全インターネットアクセス
android.permission.RECORD_AUDIO
録音
となっています
もし、画像入りのものができたら、アップしてみます

androidの音響効果

Android SDK 2.3 で新しく audiofx (音響効果)が追加された
今回追加された音響効果は
 バスブースト
(低音を強調する機能)
イコライザー
(周波数特性を変更する機能)
リバーブ
(残響効果)
バーチャルサラウンド
(ヘッドフォンの仮想効果)
音のサンプルを取得する機能も追加されたらしいです
Visualizer クラス
を使うことにより、Windows Media Player でよくある
音に合わせて波紋がでるのをつくれるようです

XML編集モードでバージョン切り替え

Android アプリ開発の勉強をしています
今回、Android アプリを Eclipse で開発していて
XML 編集モードで少しわかりにくかったのでメモ
今回、 XML 編集モードで、GUIでパーツを配置しようとしたけど
なぜかパーツが見当たらないということがありました
原因ですが、非常に単純なミスで
Android のバージョンが 3.0 になっていました
このため バージョンを Android 2.3 に変更することで
無事に解決しました
Screenshot.png
今回から、できるだけ解説に画像をいれてみようと思います

Amazn EC2 の情報収集

Amazon EC2 について情報収集しています
いままでクラウドで試したことがあるのは、
Dropbox と google App Engine を少しやった程度
どちらも無料だけど、今回使用する Amazon Ec2 の場合
利用頻度により、かかる金額が変わってくるし
今回の原発停止なども考えれば、海外のクラウドにおいてしまったほうが
安全なのかもしれません
日本にも3月に Amazon のデータセンターができたけど
こうも夏場に電力不足といわれると、はたして持つのかかが
疑問な展開に
英語が必要になるけど、英語が読めるようになれば
技術関連においてもかなり便利になるので、ここはいっそのこと
わりきって英語の勉強もしておくといいのかも
FXとかの規制に関しても、日本国内はレバレッジ規制がかかったりしても
海外までは規制できないし、海外に預金口座をつくるのなら
英語能力は必須
twitter や facebook で知り合いをつくったりコミュニティに
参加するにも、英語能力があればより視点も広がりそう
そんなわけで、英語マニュアルにもくじけずに頑張ってみます
英語が必須と思ったのは
今回見た
横浜のホームページ制作 スタジオFIXの社長ブログ
をみたのも影響しています
しかし、改めてパスワード管理とポートの変更は重要だと思いました
料金に関しては
Amazon EC2 料金一覧 早見表
に掲載されていました
もともとあったwiki っぽいページは内容がなくなったり移動していてみれませんでした
そして、EC2についての情報で参考になったのが
Amazon EC2を使う前に知っておきたいこと色々
まだまだいろいろと調べるべきことがありそうです

Notification のフラグ設定

Notification には2種類あり
1、実行中を表す通知
2、メッセージ
となります
目的は違うけど、作成する手順はどちらも同じ
双方の切り替えは
設定項目のflags にフラグを設定すれば変更可能
ちなみに、以下が設定可能なフラグ
FLAG_AUTO_CANCEL
通知がクリックされると自動で通知を消去

FLAG_INSISTENT

通知がキャンセルされるか、拡張部分が開かれるまで
音をならしたままにする
FLAG_NO_CLEAR
通知を消去するボタンでも消去できなくする

FLAG_ONGOING_EVENT

実行中の部分に通知が表示される

FLAG_SHOW_LIGHTS

LEDを点灯するときに使用

Notification で設定可能な項目

続いて、Notification で設定可能な項目のメモ
テキストエディタにもメモはしていますが
オンラインにもバックアップの代わりにとっておけば
閲覧するときに役立ちます

audioStreamType

再生するAudio のタイプ
contentIntent
拡張部分をクリックした時に呼ばれるIntent

contentView

拡張部分をカスタマイズする場合に設定するView

defaults

音、振動、点滅のデフォルトの通知方法

deleteIntent

Notification が削除されたときに呼ばれる Intent
flags
動作を制御するフラグ
icon
ステータスバーに表示するアイコン

iconLevel

ステータスバーに表示するアイコンにレベルがある場合に設定

ledARGB

LEDの表示色
ledOffMS
LEDの点滅OFFの時間
設定はミリ秒

ledOnMS

LEDの点滅ONの時間
設定はミリ秒単位
Number
ステータスバーのアイコンに表示する数字

sound

再生する音楽のURI

tickerText

ステータスバーに表示されるときに一瞬表示されるテキスト
vibrate
バイブレーションのパターン
when
拡張部分の通知領域に表示される通知発生時刻

Notification のコンストラクタ

Android 関連のメモ
関数の引数などは忘れやすいので、できるだけメモしておきます
今回はNotification のコンストラクタ

icon

ステータスバーに表示するアイコン
tickerText
ステータスバーに登録された際、一瞬だけ表示するメッセージ

when

拡張部分の通知領域に表示される通知発生時刻

AIDL で利用できる型

Android プログラミングで AIDL ファイルを作成するとき
使用可能な型が制限されているので
忘れないようにメモ
以下は利用可能な型
プリミティブ型
java 言語が提供している基本的な型
(int, boolean, double, char などなど)
String
Stringクラス
List
List クラス
でも中身が利用できる型じゃないとダメ
Map
Map クラス
これも中身が利用できる型じゃないとダメ
CharSequence
TextView などに設定されている読み込み専用文字列
AIDLインターフェース
AIDLで作成されたインターフェースクラス

Parcelable型

Parcelable クラスを継承したクラス

Android エミュレータに音楽ファイル転送

Android プログラミングで
エミュレータに音楽ファイルを転送し、アプリの起動実験しました
開発環境は ubuntu 10.10 32 bit です
音楽ファイルを考えましたが、あまり浮かばなかったので
今回は手持ちの ipod nano の音楽ファイルを使用しました
まず、最初に ubuntu に ipod nano を差します
今回使用したのは2009年に買ったものです

次に、nautilus が起動してディレクトリがみれるので、
音楽ファイルが格納されている場所
/media/SNOW\ /iPod_Control/Music/
ここからまずは ubuntu へファイルを移します
cp -r /media/SNOW\ /iPod_Control/Music/* $HOME/音楽/
これで、
Phythmbox で音楽ライブラリができます
あとは、音楽ファイルをエミュレータに移すために
eclipse を起動し、
Android エミュレータでのSDカード
のときと同じように
画面をDDMSに切り替えて
File Explorer のところにある
/mnt/sdcard
のところへ
音楽ファイルをドラッグ&ドロップすれば転送できます
ちなみに、転送しただけでは反映されません
真ん中にある設定ボタンをクリックして
dev Tools を選択して
Media Scanner をクリックすることで、
エミュレータに転送したファイルを読み込み
反映させることができるようになります