I am attaching the sound files in the assets folder for play sound in the notification but I am not able to play sound from the assets folder.
I have setting page from w
assets are private resources to that app, I think you wont be able to set them as ringtone, you will need a public file which is accessible by the media process to set ringtone. You will have to copy the file to sdcard to set it as ringtone.
This worked perfectly for me. I found it on another post.
notification.sound = Uri.parse("android.resource://my.package.name/raw/notification");
put ur mp3 file in res->raw folder
, try to fetch sound file from raw folder
.
Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/" + R.raw.myvideo);
OR
Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/raw/myvideo");
ContentProvider is the way to go. I don't think there is a need to copy files to the data directory like @Dharmendra suggests. You can access the asset folder directly though the ContentProvider
public AssetFileDescriptor openAssetFile(Uri uri, String mode)
throws FileNotFoundException {
String filePart = Sound.getSoundFileName(uri);
try {
return getContext().getResources().getAssets().openFd(filePart + ".ogg");
}catch(IOException e) {
Log.d(TAG, "fail " + e.getMessage());
}
return null;
}
The correct path to load something from your assets folder is file:///android_assets/relative_path_to_your_file
. Note the three slashes here. Although I have not tried to set a notification sound this way, I have used this with a WebView with success a number of times, and would expect it to work the same way.
I was not able to access directly the assets audio file to the Notification. So i follow this steps and so I am able to play audio in the Notification
Content Provider
to share the audio file in the read more which are now in data folder.Now using this steps I am able to set custom sound to the Notification.