Androidで音の感知

Androidで音の感知
MediaRecorderクラスを使えば
音の録音ができる
しかし、MediaRecorderクラスでは
録音はできるけど
音量の取得はできない
これに対して
AudioRecordクラスなら
マイクからの入力を波形データとして扱えるので
マイクからの音量を取得できる
Androidで音の感知
MediaRecorderクラスを使えば
音の録音ができる
しかし、MediaRecorderクラスでは
録音はできるけど
音量の取得はできない
これに対して
AudioRecordクラスなら
マイクからの入力を波形データとして扱えるので
マイクからの音量を取得できる
ちなみに、
音量の感知には
パーミッションで
RECORD_AUDIOが必要

notification.flagsのフラグ

notification.flagsに設定できるフラグ
Flag_AUTO_CANCEL
通知がクリックされると通知を消去
FLAG_INSISTENT
拡張部分が開かれるまで音を鳴らし続ける
FLAG_ONGOING_EVENT
実行中の下について通知が追加される
FLAG_NO_CLEAR
通知を消去するボタンでも消去されなくなる
FLAG_SHOW_LIGHT
LED点灯

ノーティフィケーション

ノーティフィケーション
これは
バックグラウンドで動作しているアプリから
ユーザに状態を通知したいときや
通知により、なんらかのアクションを求めるときに利用する
例えば
サービス起動を通知
その通知をクリックしたら
サービス開始や
サービス終了のアクティビティを表示できるようにするなど
一番使うのは
メールの受信を
ノーティフィケーションで表示し
これをクリックしたら
メールアプリが起動するという仕組み

オーバーライドとオーバーロード

オーバーロードとオーバーライド
にてるけど違うもの
オーバーライドは
スーパークラスで定義されている
インスタンスメソッドを
サブクラス内で再定義すること
これなら
元のクラスを変更せずに
独自機能の追加ができる
オーバーロードは
同一クラス内で
メソッド名が同じで
引数の型、数、並び方が異なるメソッドを
複数定義すること
これだと
メソッド名は同じだけど
引数の型や数で
異なる振る舞いができるのがメリット
つまり、オーバーライドは
機能追加
オーバーロードは
同じメソッド名だけど動きが違うものをつくるようなかんじ

Androidとバイブレータ

vibrate()は
バイブレータ(vibrator)
を振動させる
Vibrator()インスタンスを取得するには
getSystemService(VIBRATOR_SERVICE)
を呼び出す
そして
vibrator.vibrate()
で振動する
第一引数には
振動パターン
パターンはミリ秒単位で
OFF/ONの順で設定
第2引数には
repeat、つまり繰り返しを指定
-1を設定すると繰り返しはしなくなる
第2引数を0以上にすると
パターンを繰り返す
ただし
1や2を指定すると
繰り返しを開始する位置が変わる

$.get()の解説

サーバーからXMLデータを取得し
処理するには
$.get()
を使う
.load()でないのは
これだと
あらかじめ埋め込むコンテンツが
できあがってないと使えないから
このため
サーバー側から受け取ったデータを
jQueryで加工するときには
$.get()
を使う
$.get()の構文は
$.get(
‘読み込むデータのURL’,
返信に成功した場合の処理
}
注意点は
$(セレクター).
ではなく
$.
で呼び出すこと
これは
$.get()がなんらかの要素セットを処理に使うわけではないから
このため
$()で
セレクターとかの
要素セットを指定する必要がないから省ける

クロスドメイン制限

クロスドメイン制限
javascriptでは
自分が属しているサーバー(ドメイン)
以外にはアクセスできないという制限がある
これがクロスドメイン制限
このため、javascriptで
外部データ取得するには
アクセスそのものはサーバー側で行い
javascriptでその結果を取り扱うというやり方をとる

loadメソッドについて

外部ファイルを読み込むload()
load()はjQueryが提供するAjax関連メソッドで
指定されたファイルを読み込み、現在の
要素に反映させる
load()の構文は
$(セレクター).load(読み込みたいファイルのパス)
load()は
html()
のAjax対応バージョンだと考えると覚えやすいかも
html()は
埋め込む文字列を指定したけど
load()は
コンテンツを含んだファイルで指定できます

Ajaxの解説

Ajax 解説
Asynchronous JAvascript + Xml
の略
つまり、javascriptとXMLを利用した
非同期通信
非同期通信なら
サーバーが処理していても
ブラウザー側で操作が継続できる
XMLは
ちょっとHTMLににている
覚えておくと
ネイティブのAndroidアプリを
Eclipseでつくるときに
UI作成に使える

録音と外部SDカード記録に必要なパーミッション

録音と外部SDカード記録のパーミッション
録音は
RECORD_AUDIO
外部SDカード記録は
WRITE_EXTERNAL_STORAGE
注意点として
外部SDカード記録なので
USBデバッグしているなら
USBストレージモードを解除しておくこと
あと、画面の向きを変えたくないなら
縦向き固定なら
android:screenOrientation=”portrait”
を指定