Bagikan melalui


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
        }
    }
}