Notification nf = ......;
nf.sound = Uri.parse(uri);1.求指点 Uri.parse() 里面的参数怎么写? /mnt/...?2.android 里面 如何使用相对路径?我在java文件所在目录放了一个 m1.mp3
程序里面 nf.sound = Uri.parse("m1.mp3");
但是 无效 !!! 相对路径该怎么写?求个给简单的例子,初学android,感激不尽!
nf.sound = Uri.parse(uri);1.求指点 Uri.parse() 里面的参数怎么写? /mnt/...?2.android 里面 如何使用相对路径?我在java文件所在目录放了一个 m1.mp3
程序里面 nf.sound = Uri.parse("m1.mp3");
但是 无效 !!! 相对路径该怎么写?求个给简单的例子,初学android,感激不尽!
你把path写进去就行了
android 里面怎么写 ?我就是不知道怎么写才来问的! 比如我 我要用的那个MP3 文件应该放在程序的 那个包下?写路径的时候又怎么写?
还有别 告诉我把 path 写进去就是了!
android 里面怎么写 ?我就是不知道怎么写才来问的! 比如我 我要用的那个MP3 文件应该放在程序的 那个包下?写路径的时候又怎么写?
还有别 告诉我把 path 写进去就是了!
Environment.getExternalStorageDirectory()方法获得SD卡的根目录 自己拼接路径吧
或者通过 ContentProvider 访问MediaStore.Audio.Media 数据库的内容如果是你自己的项目的话 放在res/raw里可以通过R访问
或者放在Assets里可以通过AssetManager 访问
android 里面怎么写 ?我就是不知道怎么写才来问的! 比如我 我要用的那个MP3 文件应该放在程序的 那个包下?写路径的时候又怎么写?
还有别 告诉我把 path 写进去就是了!
Environment.getExternalStorageDirectory()方法获得SD卡的根目录 自己拼接路径吧
或者通过 ContentProvider 访问MediaStore.Audio.Media 数据库的内容如果是你自己的项目的话 放在res/raw里可以通过R访问
或者放在Assets里可以通过AssetManager 访问
非常感谢你的耐心解答, 使用 手机上的 资源我已经知道怎么用了。但是 怎么 把 MP3 资源放在 项目的 包里面 然后使用?请举个例子好吗 ?比如:我在 windows 下写Java程序在 Java文件中包中放一个m.MP3文件 Uri.parse("m.MP3")这样 Uri 就指向 m.mp3 了。 android 里面的怎么用?我 打开过 apk 的包。里面的 文件不是像 Java一样 在 对包的 里面有 Java 文件的 class 文件。
包内只有两个地方可以放有效的音频文件 res/raw 和 assets
把音频文件放在res/raw文件夹下的话 Uri的格式是
android.resource://[package]/[res type]/[res name]
例如
"android.resource://your.package.name/raw/m"或者
android.resource://[package]/[resource_id]
例如
"android.resource://your.package.name/"+R.raw.m如果放在assets文件夹下的话
需要通过AssetManager访问 获取输入流
但是想获得Uri的话 据说是可以的 但是我没试过
据说是这样
包内只有两个地方可以放有效的音频文件 res/raw 和 assets
把音频文件放在res/raw文件夹下的话 Uri的格式是
android.resource://[package]/[res type]/[res name]
例如
"android.resource://your.package.name/raw/m"或者
android.resource://[package]/[resource_id]
例如
"android.resource://your.package.name/"+R.raw.m如果放在assets文件夹下的话
需要通过AssetManager访问 获取输入流
但是想获得Uri的话 据说是可以的 但是我没试过
据说是这样基本明白了,确定一下
your.package.name 是指 manifest 里面的 package 吗 ?
我测试了一下,好像不是 java文件的包,而是 manifest的 里面指定的package 似的?
private final String DATABASE_FILENAME = "tel.db";
public void extractDBFileFromRes(){
try {
String dbFileName = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
if (!dir.exists()){
dir.mkdir();
Log.i("SQLite", "dir made:" + DATABASE_PATH);
} else {
Log.i("SQLite", "dir exist:" + DATABASE_PATH);
}
try {
//如果数据库已经在SD卡的目录下存在,那么不需要重新创建,否则创建文件,并拷贝/res/raw下面的数据库文件
if (!(new File(dbFileName).exists())){
Log.i("SQLite", dbFileName + ":file not exist");
//res/raw数据库作为输出流
InputStream inputStream = this.getResources().openRawResource(R.raw.tel);
//测试
int size = inputStream.available();
Log.i("SQLite", "DATABASE_SIZE:" + 1);
Log.i("SQLite", "count:" + 0);
//用于存放数据库信息的数据流
FileOutputStream fileOutputStream = new FileOutputStream(dbFileName);
byte[] buffer = new byte[8192];
int count = 0;
Log.i("SQLite", "count:" + count);
//把数据写入SD卡目录下
while ((count = inputStream.read(buffer)) > 0 ) {
fileOutputStream.write(buffer, 0, count);
}
fileOutputStream.flush();
fileOutputStream.close();
inputStream.close();
}
} catch (FileNotFoundException e) {
Log.e("Database", "File not found");
e.printStackTrace();
}
} catch (IOException e) {
Log.e("Database", "IO exception");
e.printStackTrace();
}
}