Notification nf = ......;
nf.sound = Uri.parse(uri);1.求指点 Uri.parse() 里面的参数怎么写?  /mnt/...?2.android 里面 如何使用相对路径?我在java文件所在目录放了一个 m1.mp3
 程序里面 nf.sound = Uri.parse("m1.mp3");
但是  无效 !!! 相对路径该怎么写?求个给简单的例子,初学android,感激不尽!

解决方案 »

  1.   

    跟File一样
    你把path写进去就行了
      

  2.   


    android 里面怎么写 ?我就是不知道怎么写才来问的!  比如我 我要用的那个MP3 文件应该放在程序的 那个包下?写路径的时候又怎么写?
    还有别 告诉我把 path 写进去就是了!
      

  3.   


    android 里面怎么写 ?我就是不知道怎么写才来问的!  比如我 我要用的那个MP3 文件应该放在程序的 那个包下?写路径的时候又怎么写?
    还有别 告诉我把 path 写进去就是了!
    Environment.getExternalStorageDirectory()方法获得SD卡的根目录 自己拼接路径吧
    或者通过 ContentProvider 访问MediaStore.Audio.Media 数据库的内容如果是你自己的项目的话 放在res/raw里可以通过R访问
    或者放在Assets里可以通过AssetManager 访问
      

  4.   


    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 文件。
      

  5.   

    非常感谢你的耐心解答, 使用 手机上的 资源我已经知道怎么用了。但是 怎么 把 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的话 据说是可以的 但是我没试过 
    据说是这样
      

  6.   

    非常感谢你的耐心解答, 使用 手机上的 资源我已经知道怎么用了。但是 怎么 把 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的话 据说是可以的 但是我没试过 
    据说是这样基本明白了,确定一下
    your.package.name   是指 manifest 里面的 package 吗 ?
    我测试了一下,好像不是 java文件的包,而是 manifest的 里面指定的package 似的?
      

  7.   

    把文件放在res/raw下,程序运行时把它释放到指定目录,代码如下:(供楼主参考)private final String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/db_exam";
    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();
    }
     
    }