Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como utilizar o URI scheme ms-tonepicker:. Este esquema de URI pode ser usado para:
- Determine se o seletor de tons está disponível no dispositivo.
- Exiba o seletor de tons para listar toques disponíveis, sons do sistema, tons de texto e sons de alarme; e obter um token de tom que representa o som que o usuário selecionou.
- Mostre o salvador de tom, que recebe um token de arquivo de som como entrada e o salva no dispositivo. Os tons guardados ficam então disponíveis através do seletor de tons. Os usuários também podem dar ao tom um nome amigável.
- Converta um token de tom para a sua designação amigável.
ms-tonepicker: referência para o esquema de URI
Esse esquema de URI não passa argumentos por meio da cadeia de caracteres do esquema de URI, mas passa argumentos por meio de um ValueSet. Todas as cadeias de caracteres diferenciam maiúsculas de minúsculas.
As seções abaixo indicam quais argumentos devem ser passados para realizar a tarefa especificada.
Tarefa: Determinar se o seletor de tons está disponível no 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
}
Tarefa: Exibir o seletor de tons
Os argumentos que você pode passar para exibir o seletor de tons são os seguintes:
| Parâmetro | Tipo | Obrigatório | Valores possíveis | Descrição |
|---|---|---|---|---|
| Ação | corda | Sim | "PickRingtone" | Abre o seletor de tom. |
| CurrentToneFilePath | corda | Não | Um token de tom existente. | O tom que deve ser exibido como o tom atual no seletor de tons. Se esse valor não estiver definido, o primeiro tom da lista será selecionado por padrão. Não se trata, a rigor, de um caminho de arquivo. Você pode obter um valor adequado para CurrenttoneFilePath a partir do valor ToneToken retornado pelo seletor de tons. |
| Filtro de Tipo | corda | Não | "Toques", "Notificações", "Alarmes", "Nenhum" | Seleciona os tons a serem adicionados ao seletor. Se nenhum filtro for especificado, todos os tons serão exibidos. |
Os valores retornados em LaunchUriResults.Result:
| Valores de retorno | Tipo | Valores possíveis | Descrição |
|---|---|---|---|
| Resultado | Int32 | nenhum sucesso. 1 - Cancelado. 7-parâmetros inválidos. 8 - Nenhum tom corresponde aos critérios de filtro. 255 - A ação especificada não é executada. |
O resultado da operação do seletor. |
| ToneToken | corda | O token do tom selecionado. A cadeia de caracteres estará vazia se o usuário selecionar o padrão no seletor. |
Esse token pode ser usado no conteúdo de uma notificação do sistema ou pode ser atribuído como toque de chamada ou som de mensagem de um contacto. O parâmetro é retornado no ValueSet apenas se Result for 0. |
| Nome de Exibição | corda | O nome amigável do tom especificado. | Uma cadeia de caracteres que pode ser mostrada ao usuário para representar o tom selecionado. O parâmetro é retornado no ValueSet apenas se Result for 0. |
Exemplo: Abra o seletor de tons para que o usuário possa selecionar um tom
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
}
}
Tarefa: exibir a economia de tom
Os argumentos que podes utilizar para mostrar o modo de poupança de tom são os seguintes:
| Parâmetro | Tipo | Obrigatório | Valores possíveis | Descrição |
|---|---|---|---|---|
| Ação | corda | Sim | "SaveRingtone" | Abre o seletor para salvar um toque de chamada. |
| TokenDePartilhaDeFicheirosTone | corda | Sim | SharedStorageAccessManager token de compartilhamento de arquivos para salvar o arquivo de toque. | Salva um arquivo de som específico como um toque. Os tipos de conteúdo suportados para o arquivo são áudio mpeg e áudio x-ms-wma. |
| Nome de Exibição | corda | Não | O nome amigável do tom especificado. | Define o nome a exibir ao guardar o toque especificado. |
Os valores retornados em LaunchUriResults.Result:
| Valores de retorno | Tipo | Valores possíveis | Descrição |
|---|---|---|---|
| Resultado | Int32 | nenhum sucesso. 1-cancelado pelo utilizador. 2-Arquivo inválido. 3-Tipo de conteúdo de arquivo inválido. O arquivo 4 excede o limite máximo de tamanho para toques (1MB no Windows 10). 5-File excede o limite de comprimento de 40 segundos. 6-O ficheiro está protegido pela gestão de direitos digitais. 7-parâmetros inválidos. |
O resultado da operação do seletor. |
Exemplo: Salvar um arquivo de música local como um toque
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;
}
}
}
Tarefa: converter um token de tom para seu nome amigável
Os argumentos que você pode passar para obter o nome amigável de um tom são os seguintes:
| Parâmetro | Tipo | Obrigatório | Valores possíveis | Descrição |
|---|---|---|---|---|
| Ação | corda | Sim | "GetToneName" | Indica que você deseja obter o nome amigável de um tom. |
| ToneToken | corda | Sim | O token de tom | O token de tom a partir do qual obter um nome de exibição. |
Os valores retornados em LaunchUriResults.Result:
| Valor de retorno | Tipo | Valores possíveis | Descrição |
|---|---|---|---|
| Resultado | Int32 | 0-A operação do selecionador foi bem-sucedida. 7-Parâmetro incorreto (por exemplo, nenhum ToneToken fornecido). 9-Erro ao ler o nome do token especificado. 10-Não é possível encontrar o token de tom especificado. |
O resultado da operação do seletor. |
| Nome de Exibição | corda | O nome amigável do tom. | Retorna o nome de exibição do tom selecionado. Esse parâmetro só será retornado no ValueSet se Result for 0. |
Exemplo: Recupere um token de tom de Contact.RingToneToken e exiba seu nome amigável no cartão de visita.
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
}
}
}