Acho que o problema é que você está tentando cobrar antes que a transferência esteja pronta. Veja isto como um exemplo:
Estou escrevendo um aplicativo e estou tentando incorporar o hub de conteúdo nele.
Meu aplicativo faz o download de vários formatos de arquivo, por isso desejo exportar imagens, vídeos e outros tipos de conteúdo para outros aplicativos.
Eu segui este guia do hub de conteúdo , mas achei que faltava exemplos para exportar conteúdo. < br>
De qualquer forma, quando estou tentando exportar qualquer conteúdo, o estado da transferência sempre muda para "abortado" imediatamente e não tenho idéia do porquê.
Aqui está o meu componente OpenContentPopup:
PopupBase {
id: root
property var activeTransfer
property var items: []
property alias contentType: peerPicker.contentType
Connections {
target: activeTransfer
onStateChanged: {
console.log("Transfer state changed to " + activeTransfer.state)
}
}
ContentPeerPicker {
id: peerPicker
handler: ContentHandler.Destination
onPeerSelected: {
for (var i = 0; i < items.length; i++) {
console.log("Sharing item with name: " + items[i].name + ", url: " + items[i].url)
}
activeTransfer = peer.request()
activeTransfer.items = root.items
activeTransfer.state = ContentTransfer.Charged
PopupUtils.close(root)
}
onCancelPressed: {
PopupUtils.close(root)
}
}
}
Quando estou tentando exportar uma imagem, o ContentPeerPicker me dá a opção de abrir o aplicativo Galeria, mas quando eu seleciono o aplicativo de galeria, o aplicativo de galeria não é aberto e parece que o estado da transferência é abortado (ou 5 ..).
Meus logs no exemplo de código me dão:
<debug> Sharing item with name: name, url: file:///home/phablet/.local/share/com.nogzatalz.downow/download/Cover.jpg
<debug> Transfer state changed to 5
manifest.json:
{
"name": "com.nogzatalz.downow",
"description": "Torrent downloading app",
"framework": "ubuntu-sdk-14.10-qml-dev3",
"architecture": "armhf",
"title": "DowNow",
"hooks": {
"downow": {
"desktop": "downow.desktop",
"apparmor": "apparmor.json",
"urls": "urldispatcher.json",
"content-hub": "content-hub.json"
}
},
"version": "0.1.28",
"maintainer": "DowNow Support <[email protected]>"
}
content-hub.json:
{
"source": [
"pictures",
"videos"
]
}
apparmor.json:
{
"policy_groups": [
"networking",
"content_exchange",
"content_exchange_source",
"audio"
],
"policy_version": 1.2
}
Eu realmente acho que precisamos de melhores mensagens de erro ...
Qualquer ajuda é apreciada!
Obrigado, Tal
Acho que o problema é que você está tentando cobrar antes que a transferência esteja pronta. Veja isto como um exemplo:
Aparentemente, o código que compartilhei estava correto.
Na minha função principal eu tinha:
setenv("APP_ID", "com.nogzatalz.downow", /*overwrite*/ true);
Acho que essa armadura de aplicativos está desarrumada ..
Eu só coloquei lá porque eu costumava ter erros sobre o APP_ID não estar definido ou algo assim ..
Enfim, obrigado por toda sua ajuda a todos! =)