[HoloLens] 애플리케이션 확장 생성
결론은 플러그인으로서 프로그램은 잠시 후에 기능을 추가할 수 있기 때문에 다음은 샘플로 공개할 것이다.
실행 결과
호스트 확장 기능의 애플리케이션 HoloLens 애플리케이션을 사용할 수 없으며 확장 기능이 있는 애플리케이션이 설치되어 있는지 여부에 따라 작업을 변경할 수 있습니다.
환경을 확인하다
문서
참조된 문서는 다음과 같습니다.
애플리케이션 확장 생성 및 호스트
절차에 따라 대충 문서대로 진행하면 문제없지만 조금 부합된다.
출구
문서 링크수학 확장 코드 샘플가 제대로 작동하지 않습니다.
샘플을 직접 구성한 후 실행하면 첫 번째는 곱셈을 정확하게 계산하고 두 번째 이후에는 NaN을 표시합니다.
또한 임무 관리자가 보기에 확장 기능은 백그라운드 프로세스로 계속 유지되며, 이 상태가 되면 다음 응용 프로그램을 시작하더라도 NaN이 처음부터 표시됩니다.따라서 작업을 다시 확인할 때 MathExtension 작업을 종료해야 합니다.
샘플이 움직일 수 없어서 이쪽부터 조사했어요.
호스트 측면의 Extension Manager 때문입니다.cs의 Invoke 방법을 봤는데 연결이 매번 닫힌 설치 때문인 것 같습니다.
확장된 MathExtension 프로젝트의 Appxaml.버튼 cs를 눌렀을 때마다 OnBack Ground Activated 방법이 호출되지만, 구체적인 처리를 하는 On App Service Request Received라고 불리지 않습니다.이거 아그스야.TaskInstance 값은 매번 변경되기 때문입니다.대책으로 연결 후 닫지 않고 변경하거나 매번 초기화 처리 같은 변경을 하면 된다.
이번에는 후자의 대응이 다음과 같다.여기.하고 여기.보면 등록 해제 안 해도 되는 사건인가요?)
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args)
{
base.OnBackgroundActivated(args);
IBackgroundTaskInstance taskInstance = args.TaskInstance;
taskInstance.Canceled += OnAppServicesCanceled;
AppServiceTriggerDetails appService = taskInstance.TriggerDetails as AppServiceTriggerDetails;
_appServiceDeferral = taskInstance.GetDeferral();
_appServiceConnection = appService.AppServiceConnection;
_appServiceConnection.RequestReceived += OnAppServiceRequestReceived;
_appServiceConnection.ServiceClosed += AppServiceConnection_ServiceClosed;
}
이상의 내용을 바탕으로 HoloLens도 동작을 했다.어플리케이션 확장 측면의 설치
확장 기능을 응용하면 수학적으로 확장된 코드 견본을 직접 사용할 수 있다.이번에는 곱셈의 계산 부분을 곱셈, Package로 바꾸었다.다음은 appxmanifest의 내용입니다.
<Extensions>
<uap:Extension Category="windows.appService">
<uap:AppService Name="com.sample.multiplyservice" />
</uap:Extension>
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension Name="Sample.com.MathExt" Id="multiply" DisplayName="x*y" Description="Exponent" PublicFolder="Public">
<uap3:Properties>
<Service>com.sample.multiplyservice</Service>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
이후 구축(ARM 또는 ARM64)하고 HoloLens로 설계하면 된다.설계 후 한 번 수행해야 합니다(특히 UI가 설치되어 있지 않고 빈 창만 그려져 있음).일단 실행하면 사라지니 문제없다.호스트 애플리케이션 측 설치
HoloLens 작업 Unity 애플리케이션에 호스트 기능을 설치합니다.
수학적 확장 기능의 코드 샘플의 ExtensionManager 클래스를 기반으로 부분적으로 수정되었으므로 자세한 내용은 GiitHub을 참조하십시오.주의점은 HoloLens 애플리케이션에서 Unity에서 내보낸 UWP 프로젝트 내의 Package입니다.이것은 appxmanifest를 수정해야 하는 점입니다.
Unity에서 UWP 프로젝트를 내보낸 후 Extension Host 폴더 아래의 Package.appxmanifest (
<Extensions>
<uap3:Extension Category="windows.appExtensionHost">
<uap3:AppExtensionHost>
<uap3:Name>Sample.com.MathExt</uap3:Name>
</uap3:AppExtensionHost>
</uap3:Extension>
</Extensions>
HoloLens에서 디버깅이 시작되면 플러그인이 자동으로 로드됩니다.샘플은 로그 출력이기 때문에 읽기 처리 절차와 확장 기능의 명칭 등을 확인할 수 있습니다.끝맺다
우선 플러그인으로 제작된 물건이 홀로렌즈에서 작동하는지 확인하기 위해 곱셈 수치는 정타도 없고 UI 등도 만들지 않았지만, 제대로 작업해야 한다는 점은 확인했다.그리고 각종 계산을 플러그인으로 추가하여 숫자를 입력하거나 확장을 관리할 수 있기 때문에 플러그인의 유효성과 무효성을 동적 제어할 수 있다.
참고 자료
이미지 처리를 추가할 수 있는 그레이스케일, 반전, 회전을 응용 확장의 견본으로 공개하였다
https://github.com/microsoft/App-Extensibility-Sample
응용 프로그램 확장 기능과 다른 응용 서비스도 있다
응용 프로그램 서비스의 제작과 이용
다른 UWP 애플리케이션에 서비스를 제공하는 UWP 애플리케이션(디바이스의 웹 서비스 등)
어플리케이션 서비스는 동일한 디바이스의 어플리케이션에서 호출되지 않는 UI를 제공하는 서비스를 만들 수 있습니다.
호스트 애플리케이션과 동일한 프로세스에서 실행되는 애플리케이션 서비스 생성 가능애플리케이션 서비스를 호스트 애플리케이션과 동일한 애플리케이션으로 변환
응용 프로그램 서비스의 코드 샘플
Reference
이 문제에 관하여([HoloLens] 애플리케이션 확장 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/hiromu/articles/20210617-hololens-plugin텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)