Memilih dan menyimpan nada menggunakan skema URI ms-tonepicker
Topik ini menjelaskan cara menggunakan ms-tonepicker: skema URI. Skema URI ini dapat digunakan untuk:
- Tentukan apakah pemilih nada tersedia di perangkat.
- Tampilkan pemilih nada untuk mencantumkan nada dering yang tersedia, suara sistem, nada teks, dan suara alarm; dan dapatkan token nada yang mewakili suara yang dipilih pengguna.
- Tampilkan penghemat nada, yang mengambil token file suara sebagai input dan menyimpannya ke perangkat. Nada yang disimpan kemudian tersedia melalui pemilih nada. Pengguna juga dapat memberikan nama yang mudah diingat.
- Mengonversi token nada menjadi nama yang mudah diingat.
ms-tonepicker: Referensi skema URI
Skema URI ini tidak meneruskan argumen melalui string skema URI, tetapi sebaliknya meneruskan argumen melalui ValueSet. Semua string peka huruf besar/kecil.
Bagian di bawah ini menunjukkan argumen mana yang harus diteruskan untuk menyelesaikan tugas yang ditentukan.
Tugas: Tentukan apakah pemilih nada tersedia di perangkat
var status = await Launcher.QueryUriSupportAsync(new Uri("ms-tonepicker:"),
LaunchQuerySupportType.UriForResults,
"Microsoft.Tonepicker_8wekyb3d8bbwe");
if (status != LaunchQuerySupportStatus.Available)
{
// the tone picker is not available
}
Tugas: Menampilkan pemilih nada
Argumen yang dapat Anda teruskan untuk menampilkan pemilih nada adalah sebagai berikut:
Parameter | Tipe | Wajib | Nilai yang dapat dipakai | Deskripsi |
---|---|---|---|---|
Tindakan | string | yes | "PickRingtone" | Membuka pemilih nada. |
CurrentToneFilePath | string | no | Token nada yang ada. | Nada untuk ditampilkan sebagai nada saat ini dalam pemilih nada. Jika nilai ini tidak diatur, nada pertama pada daftar dipilih secara default. Ini bukan, secara ketat, jalur file. Anda bisa mendapatkan nilai yang sesuai untuk CurrenttoneFilePath dari nilai yang ToneToken dikembalikan dari pemilih nada. |
TypeFilter | string | no | "Nada dering", "Pemberitahuan", "Alarm", "Tidak Ada" | Memilih nada mana yang akan ditambahkan ke pemilih. Jika tidak ada filter yang ditentukan, semua nada ditampilkan. |
Nilai yang dikembalikan dalam LaunchUriResults.Result:
Mengembalikan nilai | Jenis | Nilai yang dapat dipakai | Deskripsi |
---|---|---|---|
Hasil | Int32 | 0-sukses. 1 dibatalkan. Parameter 7-tidak valid. 8 - tidak ada nada yang cocok dengan kriteria filter. 255 - tindakan yang ditentukan tidak diimplementasikan. |
Hasil operasi pemilih. |
ToneToken | string | Token nada yang dipilih. String kosong jika pengguna memilih default di pemilih. |
Token ini dapat digunakan dalam payload pemberitahuan toast, atau dapat ditetapkan sebagai nada dering atau nada teks kontak. Parameter dikembalikan dalam ValueSet hanya jika Hasil adalah 0. |
DisplayName | string | Nama ramah nada yang ditentukan. | String yang dapat ditampilkan kepada pengguna untuk mewakili nada yang dipilih. Parameter dikembalikan dalam ValueSet hanya jika Hasil adalah 0. |
Contoh: Buka pemilih nada sehingga pengguna dapat memilih nada
LauncherOptions options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "Microsoft.Tonepicker_8wekyb3d8bbwe";
ValueSet inputData = new ValueSet() {
{ "Action", "PickRingtone" },
{ "TypeFilter", "Ringtones" } // Show only ringtones
};
LaunchUriResult result = await Launcher.LaunchUriForResultsAsync(new Uri("ms-tonepicker:"), options, inputData);
if (result.Status == LaunchUriStatus.Success)
{
Int32 resultCode = (Int32)result.Result["Result"];
if (resultCode == 0)
{
string token = result.Result["ToneToken"] as string;
string name = result.Result["DisplayName"] as string;
}
else
{
// handle failure
}
}
Tugas: Menampilkan penghemat nada
Argumen yang dapat Anda teruskan untuk menampilkan penghemat nada adalah sebagai berikut:
Parameter | Tipe | Wajib | Nilai yang dapat dipakai | Deskripsi |
---|---|---|---|---|
Tindakan | string | yes | "SaveRingtone" | Membuka pemilih untuk menyimpan nada dering. |
ToneFileSharingToken | string | yes | Token berbagi file SharedStorageAccessManager untuk menyimpan file nada dering. | Menyimpan file suara tertentu sebagai nada dering. Jenis konten yang didukung untuk file adalah audio mpeg dan audio x-ms-wma. |
DisplayName | string | no | Nama ramah nada yang ditentukan. | Mengatur nama tampilan yang akan digunakan saat menyimpan nada dering yang ditentukan. |
Nilai yang dikembalikan dalam LaunchUriResults.Result:
Mengembalikan nilai | Jenis | Nilai yang dapat dipakai | Deskripsi |
---|---|---|---|
Hasil | Int32 | 0-sukses. 1 dibatalkan oleh pengguna. 2-File tidak valid. Tipe isi file 3-Tidak Valid. 4 file melebihi ukuran nada dering maksimum (1MB di Windows 10). 5-File melebihi batas panjang 40 detik. 6-File dilindungi oleh manajemen hak digital. Parameter 7-tidak valid. |
Hasil operasi pemilih. |
Contoh: Menyimpan file musik lokal sebagai nada dering
LauncherOptions options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "Microsoft.Tonepicker_8wekyb3d8bbwe";
ValueSet inputData = new ValueSet() {
{ "Action", "SaveRingtone" },
{ "ToneFileSharingToken", SharedStorageAccessManager.AddFile(myLocalFile) }
};
LaunchUriResult result = await Launcher.LaunchUriForResultsAsync(new Uri("ms-tonepicker:"), options, inputData);
if (result.Status == LaunchUriStatus.Success)
{
Int32 resultCode = (Int32)result.Result["Result"];
if (resultCode == 0)
{
// no issues
}
else
{
switch (resultCode)
{
case 2:
// The specified file was invalid
break;
case 3:
// The specified file's content type is invalid
break;
case 4:
// The specified file was too big
break;
case 5:
// The specified file was too long
break;
case 6:
// The file was protected by DRM
break;
case 7:
// The specified parameter was incorrect
break;
}
}
}
Tugas: Mengonversi token nada menjadi nama yang mudah diingat
Argumen yang bisa Anda teruskan untuk mendapatkan nama nada yang mudah diingat adalah sebagai berikut:
Parameter | Tipe | Wajib | Nilai yang dapat dipakai | Deskripsi |
---|---|---|---|---|
Tindakan | string | yes | "GetToneName" | Menunjukkan bahwa Anda ingin mendapatkan nama nada yang ramah. |
ToneToken | string | yes | Token nada | Token nada untuk mendapatkan nama tampilan. |
Nilai yang dikembalikan dalam LaunchUriResults.Result:
Nilai hasil | Jenis | Nilai yang dapat dipakai | Deskripsi |
---|---|---|---|
Hasil | Int32 | 0-Operasi pemilih berhasil. Parameter 7-Salah (misalnya, tidak ada ToneToken yang disediakan). 9-Kesalahan membaca nama untuk token yang ditentukan. 10-Tidak dapat menemukan token nada yang ditentukan. |
Hasil operasi pemilih. |
DisplayName | string | Nama yang ramah nada. | Mengembalikan nama tampilan nada terpilih. Parameter ini hanya dikembalikan dalam ValueSet jika Hasil adalah 0. |
Contoh: Ambil token nada dari Contact.RingToneToken dan tampilkan nama yang mudah diingat di kartu kontak.
using (var connection = new AppServiceConnection())
{
connection.AppServiceName = "ms-tonepicker-nameprovider";
connection.PackageFamilyName = "Microsoft.Tonepicker_8wekyb3d8bbwe";
AppServiceConnectionStatus connectionStatus = await connection.OpenAsync();
if (connectionStatus == AppServiceConnectionStatus.Success)
{
var message = new ValueSet() {
{ "Action", "GetToneName" },
{ "ToneToken", token)
};
AppServiceResponse response = await connection.SendMessageAsync(message);
if (response.Status == AppServiceResponseStatus.Success)
{
Int32 resultCode = (Int32)response.Message["Result"];
if (resultCode == 0)
{
string name = response.Message["DisplayName"] as string;
}
else
{
// handle failure
}
}
else
{
// handle failure
}
}
}