appstream API를 사용하여 내 애플리케이션에 대한 메타데이터를 어떻게 얻을 수 있나요?

appstream API를 사용하여 내 애플리케이션에 대한 메타데이터를 어떻게 얻을 수 있나요?

나는 최근에 그것이 내 애플리케이션의 아이콘, 스크린샷 등을 얻는 데 도움이 된다는 pacman것을 발견했습니다. 하지만 어떻게 해야 할지 모르겠습니다. 문서에는 파일 이름, URL, 크기 등과 같은 아이콘에 대한 정보가 정의되어 있지만 누군가 가 올바른 방향을 알려준다면 큰 도움이 될 것입니다. 샘플 코드 등이 있습니다.alpmappstreamappstreamstruct AsIconget_icon_for_app("app_name")

답변1

이 문제를 해결하는 데 진전이 있기 시작했기 때문에 코드 조각으로 문서화해야겠다고 생각했습니다. 이것이 이 문제를 찾는 누군가에게 도움이 되기를 바랍니다.

//Create a new "pool" of metadata:
AsPool * pool = as_pool_new();

//Set the pool flags. In this case,
//I'm choosing the flag that tells it
//to load the Flatpak metadata from the standard location:
as_pool_set_flags(pool, AS_POOL_FLAG_LOAD_FLATPAK);

//Load the metadata.
//I'm supposed to pass objects for handling
//errors and cancellations, but I don't care
//right now and NULL works.
as_pool_load(pool, NULL, NULL);

//I'm getting a single component (read: app) by id,
//but it returns an array because there could be
//multiple repos with the same app, and if so it
//will return one component for each of them:
GPtrArray * components = as_pool_get_components_by_id(pool, "refname");

이를 통해 메타데이터 풀과 구성 요소(애플리케이션)가 제공됩니다. 여기에서 이러한 방법을 사용하여 메타데이터를 비롯한 원하는 모든 항목을 설치, 제거, 가져올 수 있습니다. 저는 이것이 AppStream API와 상호작용하기 위한 좋은 출발점이 될 수 있다고 생각했습니다.

관련 정보