通过内容中心导出图片时出错

通过内容中心导出图片时出错


我正在编写一款应用,并尝试将内容中心整合到其中。
我的应用会下载各种文件格式,因此我希望能够将图片、视频和其他类型的内容导出到其他应用。
我关注了本内容中心指南但发现它缺少导出内容的示例。
无论如何,当我尝试导出任何内容时,传输的状态总是立即变为“中止”,我不知道为什么。
这是我的 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 会让我选择打开 Gallery 应用程序,但当我选择 Gallery 应用程序时,Gallery 应用程序并未打开,并且传输状态似乎已中止(或 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

清单.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]>"
}

内容中心.json:

{
    "source": [
        "pictures",
        "videos"
    ]
}

apparmor.json:

{
    "policy_groups": [
        "networking",
        "content_exchange",
        "content_exchange_source",
        "audio"
    ],
    "policy_version": 1.2
}

我真的认为我们需要更好的错误消息。
任何帮助都值得感激!
谢谢,Tal

答案1

我认为问题在于您在传输完成之前尝试充电。请看以下示例:

http://bazaar.launchpad.net/~ken-vandine/+junk/hub-exporter/view/head:/hub-exporter.qml#L426

答案2

显然我分享的代码是正确的。
在我的主要功能中,我有:

setenv("APP_ID", "com.nogzatalz.downow", /*overwrite*/ true);

我猜那搞乱了应用程序装甲。
我把它放在那里只是因为我曾经收到关于未设置 APP_ID 或其他的错误。
无论如何,感谢大家的帮助!=)

相关内容