使用app安装自定义通知声音

时间:2015-07-08 02:21:16

标签: android audio notifications

我想用我的应用发送自定义mp3通知声音。我还希望用户能够将通知声音更改为其他声音,并将其更改回使用标准Android通知声音选择器UI发送的声音。我的策略是将mysound.mp3复制到名为“Notifications”的文件夹中。当我手动执行此操作时,我的手机会自动查找通知,以便通过UI选择通知。我已经能够以编程方式将mysound.mp3文件从res / raw复制到另一个文件夹,但我无法将其复制到我想要的文件夹中。在某些情况下,我可以将文件复制到我的应用程序文件下名为Notifications的目录,但通知声音选择器UI不会在那里看到它。

我是Android新手,我甚至不知道是否允许应用程序复制到Notifications文件夹。我对另一种策略持开放态度。这是我的代码。

    InputStream in = getResources().openRawResource(R.raw.mysound);
    String destDir;

    //Options for destination directory I tried but that didn't work
    destDir = "";
    destDir = "/data";
    destDir = this.getExternalFilesDir(Environment.DIRECTORY_NOTIFICATIONS).toString();
    destDir = this.getCacheDir().toString();
    destDir = this.getFilesDir().getAbsolutePath();
    destDir = this.getExternalCacheDir().toString();

    File myDir = new File(destDir + "/Notifications");
    myDir.mkdirs();

    File destinationFile = new File(myDir + "/dundun.mp3");
    destinationFile.delete(); //TODO: Delete this line when copy is working
    Boolean exists = destinationFile.exists();
    if (exists) return;

    FileOutputStream out = null;
    try {
        out =  new FileOutputStream(destinationFile.toString());

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    byte[] buff = new byte[1024];
    int read = 0;

    try
    {
        while ((read = in.read(buff)) > 0) {
            out.write(buff, 0, read);
        }
        in.close();
        out.close();
    }
    catch (IOException e) {
    }

0 个答案:

没有答案