2016-08-02 6 views
0

InstallationManager.FindPackagesForCurrentPublisherの使用方法または代替方法はありますか?それはそれが電話のためだけであるように見えます。PC用Windows 10のFindPackagesForCurrentPublisher

creating and then launching a URIでアプリを起動できますが、起動するアプリがインストールされているかどうかを知る必要があります。

編集: 公開したいアプリは同じパブリッシャーです。

答えて

1

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(); 
+0

ありがとう:

最後に、あなたはすべてのインストールされたパッケージは、例えばリストについては、あなたのアプリケーションでこのクラスを使用することができます!私が立ち上げたいアプリは同じ出版社です。それがインストールされている場合、見つける方法はありますか? –

+0

@JamesEsh、はい、ただしモバイルでのみ。 –

+0

これには理由がありますか?同じパブリッシャーのアプリがPCにインストールされているかどうかを確認する方法はまったくありません。それは愚かなようだ...:| –

関連する問題