Scegliere e salvare toni usando lo schema URI ms-tonepicker
Questo argomento descrive come usare lo schema URI ms-tonepicker:. Questo schema URI può essere usato per:
- Determinare se la selezione toni è disponibile nel dispositivo.
- Visualizza la selezione toni per elencare suonerie disponibili, suoni di sistema, toni di testo e suoni alla sveglia; e ottenere un token di tono che rappresenta il suono selezionato dall'utente.
- Visualizzare il risparmio tono, che accetta un token di file audio come input e lo salva nel dispositivo. I toni salvati sono quindi disponibili tramite la selezione tono. Gli utenti possono anche assegnare un nome descrittivo al tono.
- Convertire un token di tono nel nome descrittivo.
ms-tonepicker: riferimento allo schema URI
Questo schema URI non passa argomenti tramite la stringa dello schema URI, ma passa invece argomenti tramite ValueSet. Tutte le stringhe fanno distinzione tra maiuscole e minuscole.
Le sezioni seguenti indicano quali argomenti devono essere passati per eseguire l'attività specificata.
Attività: determinare se la selezione tono è disponibile nel dispositivo
var status = await Launcher.QueryUriSupportAsync(new Uri("ms-tonepicker:"),
LaunchQuerySupportType.UriForResults,
"Microsoft.Tonepicker_8wekyb3d8bbwe");
if (status != LaunchQuerySupportStatus.Available)
{
// the tone picker is not available
}
Attività: visualizzare la selezione tono
Gli argomenti che è possibile passare per visualizzare la selezione tono sono i seguenti:
Parametro | Type | Obbligatorio | Possibili valori | Descrizione |
---|---|---|---|---|
Azione | string | yes | "PickRingtone" | Apre la selezione tono. |
CurrentToneFilePath | string | no | Token di tono esistente. | Tono da mostrare come tono corrente nella selezione tono. Se questo valore non è impostato, per impostazione predefinita viene selezionato il primo tono nell'elenco. Questo non è, in senso stretto, un percorso di file. È possibile ottenere un valore appropriato per CurrenttoneFilePath dal valore ToneToken restituito dalla selezione toni. |
TypeFilter | string | no | "Suonerie", "Notifiche", "Allarmi", "Nessuno" | Seleziona i toni da aggiungere alla selezione. Se non viene specificato alcun filtro, vengono visualizzati tutti i toni. |
Valori restituiti in LaunchUriResults.Result:
Valori restituiti | Type | Possibili valori | Descrizione |
---|---|---|---|
Risultato | Int32 | 0-riuscito. 1-annullato. 7-parametri non validi. 8 - nessun tono corrisponde ai criteri di filtro. 255 - l'azione specificata non viene implementata. |
Risultato dell'operazione del picker. |
ToneToken | string | Token del tono selezionato. La stringa è vuota se l'utente seleziona l'impostazione predefinita nella selezione. |
Questo token può essere usato in un payload di notifica di tipo avviso popup oppure può essere assegnato come suoneria o tono di testo di un contatto. Il parametro viene restituito in ValueSet solo se Result è 0. |
DisplayName | string | Nome descrittivo del tono specificato. | Una stringa che può essere mostrata all'utente per rappresentare il tono selezionato. Il parametro viene restituito in ValueSet solo se Result è 0. |
Esempio: aprire la selezione toni in modo che l'utente possa selezionare un tono
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
}
}
Attività: visualizzare il risparmio tono
Gli argomenti che è possibile passare per visualizzare in risparmio tono sono i seguenti:
Parametro | Type | Obbligatorio | Possibili valori | Descrizione |
---|---|---|---|---|
Azione | string | yes | "SaveRingtone" | Apre il selettore per salvare una suoneria. |
ToneFileSharingToken | string | yes | Token di condivisione file SharedStorageAccessManager per il file suoneria da salvare. | Salva un file audio specifico come suoneria. I tipi di contenuto supportati per il file sono audio mpeg e audio x-ms-wma. |
DisplayName | string | no | Nome descrittivo del tono specificato. | Imposta il nome visualizzato da utilizzare quando si salva la suoneria specificata. |
Valori restituiti in LaunchUriResults.Result:
Valori restituiti | Type | Possibili valori | Descrizione |
---|---|---|---|
Risultato | Int32 | 0-riuscito. 1-annullata dall'utente. 2-File non valido. 3-Tipo di contenuto del file non valido. 4-Il file supera la dimensione massima della suoneria (1 MB in Windows 10). 5-Il file supera il limite di lunghezza di 40 secondi. 6-Il file è protetto da Digital Rights Management. 7-parametri non validi. |
Risultato dell'operazione del picker. |
Esempio: Salvare un file musicale locale come suoneria
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;
}
}
}
Attività: convertire un token di tono nel nome descrittivo.
Gli argomenti che è possibile passare per ottenere il nome descrittivo di un tono sono i seguenti:
Parametro | Type | Obbligatorio | Possibili valori | Descrizione |
---|---|---|---|---|
Azione | string | yes | "GetToneName" | Indica che si vuole ottenere il nome descrittivo di un tono. |
ToneToken | string | yes | Il token del tono | Token di tono da cui ottenere un nome visualizzato. |
Valori restituiti in LaunchUriResults.Result:
Valore restituito | Type | Possibili valori | Descrizione |
---|---|---|---|
Risultato | Int32 | 0-Operazione di selezione completata. 7-Parametro non corretto (ad esempio, nessun ToneToken specificato). 9-Errore durante la lettura del nome del token specificato. 10-Impossibile trovare il token di tono specificato. |
Risultato dell'operazione del picker. |
DisplayName | string | Nome descrittivo del tono. | Restituisce il nome visualizzato del tono selezionato. Questo parametro viene restituito solo in ValueSet solo se Result è 0. |
Esempio: recuperare un token di tono da Contact.RingToneToken e visualizzarne il nome descrittivo nella scheda contatto.
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
}
}
}