Я пишу приложение и пытаюсь включить в него концентратор контента.
Мое приложение загружает файлы различных форматов, поэтому я хочу иметь возможность экспортировать изображения, видео и другие типы контента в другие приложения.
Я следовал этому руководству по содержанию , но обнаружил, что в нем нет примеров для экспорта контента.
В любом случае, когда я пытаюсь экспортировать какой-либо контент, состояние передачи всегда сразу меняется на «прервано», и я понятия не имею, почему.
Вот мой компонент 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)
}
}
}
Когда я пытаюсь экспортировать изображение, ContentPeerPicker дает мне возможность открыть приложение Галерея, но когда я выбираю приложение галереи, приложение галереи не открыто, и кажется, что состояние передачи отменено (или 5 ..).
Мои журналы в примере кода дают мне:
<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 <downow-support@nogzatalz.com>"
}
content-hub.json:
{
"source": [
"pictures",
"videos"
]
}
apparmor.json:
{
"policy_groups": [
"networking",
"content_exchange",
"content_exchange_source",
"audio"
],
"policy_version": 1.2
}
Я действительно думаю, что нам нужны более качественные сообщения об ошибках ..
Любая помощь приветствуется!
Спасибо, Тал
Я думаю, что проблема - Вы, пытаются заряжать его, прежде чем передача будет готова. Посмотрите на это как на пример:
http://bazaar.launchpad.net/~ken-vandine/+junk/hub-exporter/view/head:/hub-exporter.qml#L426
По-видимому, код, который я совместно использовал, был корректен.
В моей основной функции я имел:
setenv("APP_ID", "com.nogzatalz.downow", /*overwrite*/ true);
я предполагаю, что это испортило броню приложения..
я только поместил его там, потому что я раньше получал ошибки о APP_ID, не устанавливаемом или чем-то..
Так или иначе, спасибо за всю Вашу справку все! =)