本帖最后由 cailingyun0129 于 2013-04-07 14:53:54 编辑

解决方案 »

  1.   

    将file_path=Environment.getExternalStorageDirectory() + "/" +"recordings/test.mp3";我感觉是路径不对
      

  2.   

    是在源码framework里加的代码怎么加访问权限啊?不用加吧!
      

  3.   

    使用你提供的方法还是一样返回false;
      

  4.   

    打下log看下getExternalStorageDirectory的路径另外必须提醒你下:file本身有可能为空,所以判断file.exists前最好判断下file是否为空
    而且系统铃声这些东西不是在sd卡上的,虽然不知道你的为啥是这样,一般是编译进system/media下的
      

  5.   

    我是设置SD 卡上recordings/test.mp3文件为来电铃声,log输出file_path为:“/mnt/sdcard/recordings/test.mp3”,这应该问题吧,就是调用file.exists()时都是返回的是false;但是我在独立的apk应用中调用file.exists()则返回是正常的,及若文件存在则返回true,不存在就返回false;但是我将同一段代码加在源码RingtoneManager.java里的getActualDefaultRingtoneUri(Context context, int type)里,则返回异常,且只有SD里的文件返回异常,手机内存里的文件也是正常的。怪哉?
      

  6.   

    加个try catch 试试,这个path是T卡上的,估计java的编译器会加一下其他的处理
      

  7.   


    这样的话我觉得是mk文件中local_certificate引起的,如果写成userId貌似是不能访问sd卡的
    你可以继续百度看看  
      

  8.   

    貌似在android 4.0(不确定是不是4.0开始)之后system权限不能访问SD卡
    所以framework加的应该会访问失败,你可以试下写个简单的测试apk是不是就返回true了
      

  9.   

    file-path:  "/mnt/sdcard/recordings/test.mp3" 改成/sdcard/recordings/test.mp3
      

  10.   


    你是android那个版本改的framework?估计是因为system权限访问sdcard受限