InstallationManager.FindPackagesForCurrentPublisherの使用方法または代替方法はありますか?それはそれが電話のためだけであるように見えます。PC用Windows 10のFindPackagesForCurrentPublisher
creating and then launching a URIでアプリを起動できますが、起動するアプリがインストールされているかどうかを知る必要があります。
編集: 公開したいアプリは同じパブリッシャーです。
InstallationManager.FindPackagesForCurrentPublisherの使用方法または代替方法はありますか?それはそれが電話のためだけであるように見えます。PC用Windows 10のFindPackagesForCurrentPublisher
creating and then launching a URIでアプリを起動できますが、起動するアプリがインストールされているかどうかを知る必要があります。
編集: 公開したいアプリは同じパブリッシャーです。
LaunchUriAsync(Uri)
メソッドを使用してアプリを起動すると、ターゲットのアプリがインストールされていない場合、まずこのプロトコルを登録したインストール済みアプリを起動しようとすると、Storeアプリが開き、このプロトコルを登録しました。
FindPackagesForCurrentPublisher
方法が唯一のアプリと同じ発行者IDとアプリのパッケージを見つけることができ、同じ出版社ではなく、他のアプリのために、あなたはFindPackages methodを使用する必要がありますが、この方法はID_CAP_OEM_DEPLOYMENT
が必要です。デスクトップの場合、今は方法がありません。あなたはその作業を行うために特別なアクセスが必要です。そうしないと、UWPアプリのサンドボックスを破ることができません。
あなたのアプリがストアに公開されない場合は、PackageManager classを使用してインストールされたパッケージを見つける方法があります。このクラスを使用するには、このようなあなたのアプリのマニフェストにpackageManagement
機能を追加する必要があります。この機能のために
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
...
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="packageManagement" />
</Capabilities>
</Package>
、あなたがSpecial and restricted capabilitiesを参照することができます。返信用
var packageManager = new PackageManager();
IEnumerable<Windows.ApplicationModel.Package> packages = (IEnumerable<Windows.ApplicationModel.Package>)packageManager.FindPackagesForUser("");
var list = packages.ToList();
ありがとう:
最後に、あなたはすべてのインストールされたパッケージは、例えばリストについては、あなたのアプリケーションでこのクラスを使用することができます!私が立ち上げたいアプリは同じ出版社です。それがインストールされている場合、見つける方法はありますか? –
@JamesEsh、はい、ただしモバイルでのみ。 –
これには理由がありますか?同じパブリッシャーのアプリがPCにインストールされているかどうかを確認する方法はまったくありません。それは愚かなようだ...:| –