콘텐츠 허브를 사용하여 파일을 열려고 하면 AppArmor가 거부됩니다.

콘텐츠 허브를 사용하여 파일을 열려고 하면 AppArmor가 거부됩니다.

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

content-hub내 매니페스트.json에서 후크에 호출되는 속성을 추가해야 했습니다 .

"content-hub": "hub.json"

그런 다음 hub.json파일을 만듭니다.

{
    "source": [ "pictures" ]
}

관련 정보