2012年4月13日金曜日

Uri.parse(...)でリソースフォルダを参照したい【メモ】

【目的】ノテフィケーションの通知で鳴らす音源をリソースフォルダ内に置いて、使用したい
【分からなかった事】Uri.parseメソッドのURIの書き方
(実装環境:GalaxyNexus OS_ver.4.0.2)

例)ノティフィケーションの通知音を指定する時
(リソースは res/raw/bell.ogg に配置)

notification.sound = Uri.parse("android.resource://com.package/raw/bell");

【結論】UriString="android.resource://" + <パッケージ名> + "/" + <リソースフォルダ下のパス>
(参照先:http://stackoverflow.com/questions/5373212/uri-parse-to-res-folder)


ファイル構造をちゃんと理解していないからですよね…ハハッ(苦笑
検索しても中々引っかからなかったので、あまりこのような事をする方がいらっしゃらないのか
はたまた常識中の常識なのか、わかりませんが、私は分からなかったわけで…メモ。

検索していて"//"が無い方とか、パスの最後を「R.raw.bell(←intのまま)」と
いった感じの方がいらっしゃいましたが、うまくいきませんでした。
バージョンとかの違い…ではなさそうなのですが…

※※※ 追記 ※※※
上記のパスでVideoViewのファイルを参照しようとしたら
「この動画は再生できません」というエラーが出てしまいました。
しかし、端末の方に事前に動画ファイルを入れて
Uri.parse("/data/…");
で指定した所あっさり再生できちゃいました…

…どういうことだってばよ…orz