C++ を使用してコンテンツ ハブでファイルを開こうとすると、次のエラーが発生します。
Opening with peer com.ubuntu.music_music_2.1.857
Sdk-Launcher> Application was resumed
Sdk-Launcher> There has been a AppArmor denial for your application.
Sdk-Launcher> Most likely it is missing a policy in the AppArmor file.
Syslog> Jun 20 19:15:23 ubuntu-phablet kernel: [ 3561.148570] type=1400 audit(1434827723.595:155): apparmor="DENIED" operation="open" profile="com.nogzatalz.downow_downow_0.8.81" name="/home/phablet/.local/share/applications/com.ubuntu.music_music_2.1.857.desktop" pid=9282 comm="downow" requested_mask="r" denied_mask="r" fsuid=32011 ouid=32011
transfer state changed to 5
Sdk-Launcher> Application was focused
transfer state changed to 5
transfer state changed to 5
Transfer::State 列挙型をチェックしたところ、状態 5 は中止を意味することがわかりました。
これは私の apparmor.json ファイルです:
{
"policy_groups": [
"networking",
"content_exchange",
"content_exchange_source",
"audio"
],
"policy_version": 1.3
}
私は ubuntu-sdk-15.04-qml フレームワークを使用しています。
私のアプリは最後の OTA アップデートまでは正常に動作していました。私の Nexus 5 ではこれは r20 です。
どんな助けでも大歓迎です!
編集: しばらくこの問題を解決しようとした後、他のアプリケーションからコンテンツをインポートすることはできるが、エクスポートはまだ機能していないことに気付きました。
インポート用の簡略化されたコードを以下に示します (機能します)。
QPointer<cuc::Hub> hub = cuc::Hub::Client::instance();
cuc::Peer peer = hub->default_source_for_type(cuc::Type::Known::pictures());
cuc::Transfer * t = hub->create_import_from_peer(peers);
t->start();
以下はエクスポート用の簡略化されたコードです (動作しません)。
QPointer<cuc::Hub> hub = cuc::Hub::Client::instance();
QVector<cuc::Peer> peers = hub->known_destinations_for_type(cuc::Type::Known::pictures());
cuc::Transfer * t = hub->create_export_to_peer(peers[0]);
QVector<cuc::Item> items;
items.append(cuc::Item(QUrl::fromLocalFile("/home/phablet/.local/share/com.nogzatalz.downow/download/Ed Sheeran – 5 (2015) (ALBUM) 320 KBPS/Cover.jpg")));
t->setSelectionType(cuc::Transfer::single);
t->charge(items);
答え1
私の manifest.json では、hooks というプロパティを追加する必要がありましたcontent-hub
。
"content-hub": "hub.json"
次にhub.json
ファイルを作成します:
{
"source": [ "pictures" ]
}