c# - 需要用 xamarin 更改默认铃声
问题描述
需要用xamarin更改默认铃声我使用带有路径字符串的android.net.parse并返回null,然后我使用我在网上找到的波纹管代码并再次返回null有人可以帮忙吗?
var ring1 = ("file:////storage/emulated/0/Ringtones/" + item.ringtone);
ContentValues values = new ContentValues();
values.Put(MediaStore.IMediaColumns.Data, ring1);
values.Put(MediaStore.Audio.Media.InterfaceConsts.IsRingtone, true);
values.Put(MediaStore.IMediaColumns.MimeType, "audio/mp3");
var uri = MediaStore.Audio.Media.GetContentUriForPath(path: ring1);
Android.Net.Uri newUri = this.ContentResolver.Insert(uri, values);
RingtoneManager.SetActualDefaultRingtoneUri(Android.App.Application.Context,RingtoneType.Ringtone, newUri);
调试中的“uri”和“values”有值但参数newUri为空
解决方案
您需要重新检查 ring1 的路径。
我使用下载文件夹中的文件作为参考。有用。
var ring1 = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads, "sample.mp3");
如果你想使用铃声的默认 Uri,你可以使用下面的代码。
RingtoneManager.GetDefaultUri(RingtoneType.Ringtone)
推荐阅读
- python - 我想知道如何将带有值列表的字典映射到数据框
- spring-boot - 尝试使用 Tomcat 在 Docker 中将 Springboot 应用程序作为 war 文件运行时出现问题
- sbt - SBT 1.5.5 在使用 -mem 选项运行测试时出错
- python - pip:没有为检测器2找到匹配的分布
- nginx - 将 2 个 url (%20) 重定向到 nginx 中的一个
- angular - ChartJs:删除两点之间的线
- r - 仅选择具有子组且都具有观察值的组
- ios - 如何自定义 iOS/tvOS 中提供的 PiP 的 UI?
- sql - Postgres 转置一行
- azure - 将 Azure IoT 数据发送到 azure gen2