• 与本机其他应用交互的简单介绍


    出于安全方面的考虑, WP的API中对于获取其他应用信息的方法并不多,我们甚至于连启动其他应用都会觉得棘手.

    所以如果是要做成XX应用集合,想要下载完成直接启动,就要费一番功夫了. 这里简单做了一下概括.

    如果是企业应用的话,会稍微好一些, 具体参见 这里  , 这篇文章不讲企业应用,只说一般应用 ,根据API 的限制, 我把获取信息分为两类,分别是 同账号下其他应用不同账号下其他应用

    同账号下其他应用

    1、获取当前已经安装的应用

    IEnumerable<Package> apps = Windows.Phone.Management.Deployment.InstallationManager.FindPackagesForCurrentPublisher();

    2、获取某一个应用的信息

    Package pkg = apps.FirstOrDefault();

      // Package pkg = (from p in apps
      // where p.Id.ProductId == "b1f30166-881d-4eb3-9e63-394f90bdc4a5"
      // select p).FirstOrDefault();

    string name = pkg.Id.Name;
    string author = pkg.Id.Author;

    3、获取应用的图像

    string token = pkg.GetThumbnailToken();
    
    var icon = SharedStorageAccessManager.GetSharedFileName(token);
    await SharedStorageAccessManager.CopySharedFileAsync(ApplicationData.Current.LocalFolder, icon, NameCollisionOption.ReplaceExisting, token);
    
    var file = await ApplicationData.Current.LocalFolder.GetFileAsync(name);
    var stream = await file.OpenReadAsync();

    4、启动应用

    pkg.Launch(string.Empty);

    不同账号下的其他应用

    1、启动应用

    对于不同账号下的其他应用, 我们无法获取它的具体信息, 但是可以通过uri关联来启动,前提是要启动的应用必须支持uri协议,而且是唯一的,不然就会让你选择具体是那个,

    就不会自动去打开某个应用了. 现在商店里的 炫桌面,  软件盒子  都是通过这个方式来做的. 

    Launcher.LaunchUriAsync(Uri) 

    //一些设置的启动
    Windows.System.Launcher.LaunchUriAsync(new Uri(“ms-settings-wifi:”));

    2、获取已经安装的应用

    这个没有什么好的办法,只能是一开始给一个应用列表, 然后用户点击,我们让它跳转到商店的详细信息页面,引导用户安装, 这时候无论安装是否成功,我们都认为已经安装成功了,然后添加

    到数据库里,下一次再点击, 通过该应用的uri 来启动应用,如果没有安装的话,系统会自动提示是否要搜索,就不会我们去操心了。

    虽然体验差了一些,但是基本也够用了.

    MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();
    
    marketplaceDetailTask.ContentIdentifier = app.id;
    marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;
    
    marketplaceDetailTask.Show();

    其他的信息暂时是没法获得的

  • 相关阅读:
    老鸟的Python新手教程
    vs2010经常使用快捷键
    SQL基础--&gt; 约束(CONSTRAINT)
    哈哈,做题了
    【网络协议】TCP中的四大定时器
    JAVA反射机制
    JUnit入门
    怎样将程序猿写出来的程序打包成安装包(最简单的)
    事件传递机制总结
    理解class.forName()
  • 原文地址:https://www.cnblogs.com/jeekun/p/3312702.html
Copyright © 2020-2023  润新知