刚刚发布的Android 7.0(牛轧糖) 包含了一些伟大的新功能,比如直接回复和增强的睡眠功能,Android7.1已经开始开发预览版。您不必等待新的Android 7.1(API 25)SDK被完全释放,以开始集成和运送新功能。Android 7.1的特性是应用程序快捷方式,让用户可以快速从主屏幕或应用程序抽屉中跳到右边。
静态的快捷方式
应用程序快捷方式有两种风格,开发者可以实现静态和动态两种功能。静态今天可用,最容易实现,不需要任何新的SDK或API成为目标。只需添加一些意图过滤器和快捷键说明你已经准备好去即时应用的快捷方式。让我们看看我们可以更新发展会议应用程序的新的应用程序的快捷方式的Android采取任何与会者直接向会议,事件,和小技巧。
更新Android清单
在你的AndroidManifest.xml更改应用程序元素,或者天健一个android:targetSdkVersion属性,值设置为25。这将确保Android知道我们在Android 7.1 API的使用。
更新主引导 Activity
为了与Android通信,我们的应用程序具有快捷方式,我们必须为我们的应用程序的“主启动器”指定一些额外的元数据。可以在 [Activity] 属性中查找 MainLauncher=true,在这个属性下,我们可以添加另一个名为元数据的属性来指定我们的快捷方式将生存的资源文件:
[MetaData ("android.app.shortcuts", Resource ="@xml/shortcuts")]
创建一个快捷方式XML
在Android项目的Resources文件夹下, 创建一个新的名字叫xml的文件夹,创建一个新的XML文件,名字叫做shortcuts.xml ,在这里,我们将指定我们的应用程序可以支持的所有快捷方式,如下所示:
注意,在这里要指定targetClass到我们应用程序的MainActivity,这是我们想加载的。你也可以指定某些Activity,通过设置Export属性为true。此外,这里最好的做法是在其属性中手动指定活动名称:
[Activity(Label = "Evolve16", Name="com.xamarin.xamarinevolve.MainActivity", Exported = true, Icon = "@drawable/newicon", LaunchMode = LaunchMode.SingleInstance, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
响应应用程序快捷方式
现在,我们的应用程序的应用程序的快捷方式的地方我们需要回应他们。因为我们通过数据为每个意图的一部分,我们可以简单地做一个开关,从主流的OnCreate方法进行导航:
if(string.IsNullOrWhiteSpace(Intent?.Data?.LastPathSegment)) { switch(Intent.Data.LastPathSegment) { case "sessions": MessagingService.Current.SendMessage("DeepLinkPage", new DeepLinkPage { Page = AppPage.Sessions }); break; case "events": MessagingService.Current.SendMessage("DeepLinkPage", new DeepLinkPage { Page = AppPage.Events}); break; case "minihacks": MessagingService.Current.SendMessage("DeepLinkPage", new DeepLinkPage { Page = AppPage.MiniHacks}); break; } }
基于Xamarin.Forms应用程序类接受的消息,我们非常容易导航到某些页面,那是我们通过快捷方式想要加载的地方。
了解更多
你可以抓住的进化程序源代码的应用程序的快捷方式的分支从Github上已更新的应用程序的快捷方式。同样的应用还具有iOS 3D触摸快速行动为iOS应用程序有一个类似的风格。你可以阅读完整的文档中找到更多关于Android 7.1的应用程序的快捷方式的特点。