Demo地址 一、iOS11 1.INIntent Apple只对11个固定的领域支持Siri识别,每个领域对应不同的INIntent和INIntentHandler,以发送信息和支付为例,通过用户的语音大体判断服务领域以及...App执行相应功能,但前提是Siri可以识别出用户的意图(表格中的INIntent) 工作流程如下: 1)、 Siri完成语音识别和语义分析; 2)、会根据你词汇中的关键词识别出属于上述11种领域中的哪一种...二、iOS12 ShortCut 1.NSUserActivity 记录用户的操作,生成ShortCut,用户可以在设置->Siri->All ShortCuts中找到,可以匹配上语音,以后通过该语音调用用户的操作...通过Intent也可以实现上述效果,生成ShortCut,该方法可以自定义UI,参照IntentsUI。...//参数中的Intent就是开发者自定义的Intent,在用户的某个操作后初始化,并暴露到设置中的ShortCut中。
一、Shortcut 简介 Shortcut 是 Android 7.1 (API Level 25) 的新特性,类似于苹果的 3D Touch ,但并不是压力感应,只是一种长按菜单。...博主最开始考虑的是 Forms to Native ,但没成功。...在设置 ShortcutInfo 时需要一个 Intent ,其中一个构造函数为 public Intent(Context packageContext, Type type); 看着很容易,只要传入一个...既然是需要依赖 Activity 的,那就通过新建一个 Android Activity 去调用 Forms 页面。...SetRank 为设置排序序号,最多显示5个 Shortcut ,也就是 0-4 ;SetIcon 为设置图标;SetShortLabel 与 SetLongLabel 则是设置长名称与段名称;SetIntent
但是,在本手册中,禁止将导出的属性设置为不确定的。...请注意,粘性广播在 Android 5.0(API Level 21)中已弃用。...Intent to be launched when the shortcut is tapped intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, targetIntent...Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); intent.putExtra...特别重要的是要注意,在创建基于 URL 的快捷方式时,秘密信息可能包含在 URL 本身中。
快捷方式创建代码: ntent addShortCut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); addShortCut.putExtra...(Intent.EXTRA_SHORTCUT_NAME, title); // 不允许重复创建 addShortCut.putExtra("duplicate", false); addShortCut.putExtra...(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent...如果我们设置了照片的存储路径,那么很可能会遇到一下三种问题: 问题一:onActivityResult 方法中的data 返回为空(数据表明,93%的机型的data 将会是Null,所以如果我们指定了路径...总结: (1)使用 onActivityResult 中的 intent(data)前要做空判断。 (2)指定拍照路径时,先检查路径中的文件夹是否都存在,不存在时先创建文件夹再调用相机拍照。
Shortcuts 限制条件 虽然对于一个应用程序一般可以创建五个快捷方式,其中包括静态和动态的,但是但多数的设备上只能展示** 四个**。...Shortcut intents 配置 如果希望应用在用户激活快捷方式时执行多项操作,则可以将其配置为触发后多项活动。...还有一个问题,静态快捷方式是不能拥有自定的 intent flag 的,静态快捷方式始终设置为 Intent.FLAG_ACTIVITY_NEW_TASK 和 Intent.FLAG_ACTIVITY_CLEAR_TASK...遵循设计准则 要使应用程序的快捷方式与系统应用程序使用的快捷方式在视觉上保持一致,请遵循 快捷方式设计指南 仅发布四个不同的快捷方式 尽管 API 目前支持给任何应用最多五个快捷方式(静态和动态),但还是建议仅发布四个不同的快捷方式...只有在 shortcuts 的意义存在时更新 当改变动态快捷方式时,只有在 shortcut 仍然保持它的含义时,调用 updateShortcuts() 方法改变它的信息,否则,应该使用 addDynamicShortcuts
WWDC2018的Introduction to Siri Shortcuts Session介绍了Siri Shortcuts的使用和Swift接入,但没有Objective-C版本的demo。...正文 快速接入Siri Shortcuts Siri Shortcuts的API有两大类:NSUserActivity和Intents。 ?...(Donate Shortcut) -initWithActivityType接口的type参数要和plist一致; eligibleForPrediction是iOS 12新增API,如需支持老版本要添加...打开APP请求 (Handle Shortcut) 通过userActivity的type值判断是否为Siri Shortcuts呼起,做相应的逻辑处理。...2、Shortcuts(短语快捷方式) 把APP的常用操作行为与短语挂钩,通过设置好的短语可以快捷使用APP的功能; WWDC以点外卖为例,通过设置好的短语coffee time,可以呼起APP,也可以直接在
时,表明该APP在手机上可以被调试。...常见的android:name值为android.intent.action.MAIN,表明此activity是作为应用程序的入口。...=".shortcut"> intent-filter> intent.action.MAIN...:targetActivity=".shortcut"android:label="@string/shortcut"> intent-filter> intent.action.CREATE_SHORTCUT" /> intent.category.DEFAULT
时,表明该APP在手机上可以被调试。...常见的android:name值为android.intent.action.MAIN,表明此activity是作为应用程序的入口。.../> 是为activity创建快捷方式的,如下实例: shortcut">...".shortcut" android:label="@string/shortcut"> intent-filter> intent.action.CREATE_SHORTCUT" /> intent.category.DEFAULT
空实现的内部类作用是用来加载对应的fragment,因为在6.0的设置中只有设置主页面对应的activity有实现,别的页面基本是以fragment的形式呈现。...当创建快捷方式时调用queryIntentActivities方法查询到的类为这些空实现 的内部类。...启动独立的类 现在我们只能去查看其父类SettingsActivity.java中的实现了 Chapter Two,onCreate方法 首先是调用getMetaData方法,但与4.4.2源码不同,6.0...,判断是否有特定的action,如果有就属于快捷方式 //或者判断key为EXTRA_SHOW_FRAGMENT_AS_SHORTCUT中的值是否为true mIsShortcut = isShortCutIntent...(intent) || isLikeShortCutIntent(intent) || intent.getBooleanExtra(EXTRA_SHOW_FRAGMENT_AS_SHORTCUT
()); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); //快捷方式的图标...(Activity activity) { Intent shortcut = new Intent( "com.android.launcher.action.UNINSTALL_SHORTCUT...(Intent.EXTRA_SHORTCUT_INTENT, new Intent( Intent.ACTION_MAIN).setComponent(cn));...false; * isBlank(" a") = false; * isBlank("a b") = false; * * * @param str 字符串 * @return 如果字符串为空或者长度为...return defaultValue; } return String.valueOf(object); } /** * 将对象转为String后进行分割,如果为对象为空或者空字符
: 1、调用 +startWithAppKey: ,参数为第一步获得的 AppKey。...("tiny","openapplus://jsApp/xxxxx"); startActivity(intent); finish(); 小程序 API 授权登录流程 一、App接入 第一步:获取服务端的...的过期时间 第五步:通过session调用接口 能调用的接口有以下: 接口 接口URL 接口说明 /auth/jsapp/getUser http://www.openapplus.com/auth/...OBJECT参数说明: 参数 类型 必填 说明 appId String 是 要打开的小程序 jsAppKey path String 否 打开的页面路径,如果为空则打开首页 extraData String...参数e格式为:{path: "", query: query},其中query 为extraData,仅支持一层字典 url String 是 和appId二者选择一个,打开小程序的URL,格式为:openapplus
调用接口 3-1 实现 API 接口 首先,我们需要将调用脚本的逻辑写成一个 API 接口 比如,我们可以使用 FastAPI 快速撸一个 import uvicorn from fastapi import...code, "msg": result } return { "code": 1, "msg": "用户名或密码不能为空!...:8000/rsc_api 然后,再添加一个「 获取 URL 内容 」的操作 展开这部分操作,填入请求方法、头部、请求体( 也可以通过变量的方式设置进去 ) ?...接着,添加一个「 文本 」操作 将输入内容填充为「 URL 的内容」,将响应的结果展示出来 最后,可以点击后下角的运行进行调试 4....,触控功能也可以与快捷指令关联上,一键执行 比如,使用触控功能快速打开支付宝的支付码 首先,新建一个快捷指令,命名为「 支付宝支付 」 然后,新建一个 「 URL 」的操作 指定内容为: alipayqr
如果PermissionGroup的属性为空,会导致权限定义无效,且其他app无法使用该权限。...从Android 5.0(API 级别21)开始,如果使用隐式Intent 调用bindService(),系统会抛出异常。...从Android 5.0(API 级别21)开始,如果使用隐式Intent 调用bindService(),系统会抛出异常。...Exception{ // 为空即可 }2.7 合理定义android.intent.category.BROWSABLE 在处理Intent数据时,进行捕获异常,通过getXXXExtra(...禁止使用空intent去构造pendingIntent。 开发建议 禁止使用空intent去构造pendingIntent。
首先写一个只显示一个ImageView的Activity,然后在主布局文件中提供一个id为shortCut的按钮,当用户单击这个按钮时调用上面创建的Activity,将图片显示在屏幕上。...installShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); Intent intent = new Intent(..."com.hc.activity.DesktopActivity"); installShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent)...(2) 调用该Intent的setData(Uri uri)方法,该Uri参数就是ContentProvider对外提供数据的Uri。...(3) 依次调用Intent对象的putExtra()方法来设置实时文件夹的图标、标题、显示模式等内容。 (4) 设置完成后,调用Activity的finish()方法结束当前的Activity。
如果不提,时间会缺省为当前的本地时间。 地点:由于我没有提及地点,所以 alexa 需要从其他信息中推断出我的地点。...虽然目前而言,amazon 暂时领先于 apple/google,但最终的结局还不好说。 amazon 起步并不算早,但目前在这场斗争中占得了先机,不得不说它战略的正确性。 我们先从硬件看。...amazon 推出的 echo / echo dot 为语音助手渗透到家庭场景中卯足了劲。...google 痛定思痛后,步子大起来,在 API 的开放性和易用性上,有了巨大的飞跃。尤其是在去年9月收购了 api.ai 后,势头直追 amazon。...在 api.ai 上制作一个 action 很简单(从交互的角度讲,比 alexa 好很多),基本上和 alexa 是相同的概念(intent 对应 intent,entity 对应 slot 等),相同的方式
今天为大家发布本系列文章中的第四篇: 使用深层链接 (Deep Links) 导航。...我为这两个操作都添加了深层链接,一个是为了添加新的甜甜圈,而另一个是为了返回正在编辑的条目。...代码使用了一个 NavigationController 的 API 为深层链接创建 pendingIntent,其目的地被设置为对话框 fragment,这个调用既设置了包括甜甜圈 ID 的参数也创建了...intent。...代码还调用了 Notifer.postNotification(),这是我为了处理通知的创建和发送操作而增加的一个工具类方法。
为你的应用程序增加AppIntent能力 引言 AppIntent是iOS16+之后引入的框架,在iOS17+后,对AppIntent的功能又进行了进一步的增强。...其提供了接口可以让我们将应用程序的某部分特定功能抽离出来,提供给Siri和Shortcuts来进行调用。通过Siri和Shortcuts这类系统服务,用户的可以更加方便的使用App提供的便捷功能。...在AppIntent执行时,默认会将应用在后台拉起,如果我们需要应用程序进入前台,需要设置openAppWhenRun为true。...上面示例代码中,返回了一个空的结果,表示执行成功。...向系统搜索服务中注册Shortcuts 在iOS17后,可以向系统的搜索服务中注册核心的Shortcuts,对于这类Shortcuts,用户无需手动添加,即可在搜索服务入口处直接调用。
权限申请的一般流程 API 为方便开发者实现权限管理,Google提供了4个API: API 作用 checkSelfPermission( ) 判断权限是否具有某项权限 requestPermissions...权限申请的正确姿势 上文有提到Google提供了4个新的API,还有一个shouldShowRequestPermissionRationale( )方法没有用到。...如果此时,用户勾选了“不再询问”,再次调用“shouldShowRequestPermissionRationale( )”会返回false。...CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_STATE DISABLE_KEYGUARD EXPAND_STATUS_BAR GET_PACKAGE_SIZE INSTALL_SHORTCUT...REQUEST_INSTALL_PACKAGES SET_ALARM SET_TIME_ZONE SET_WALLPAPER SET_WALLPAPER_HINTS TRANSMIT_IR UNINSTALL_SHORTCUT
但其原因已不重要了,因为既然Android里已提供了更好的方案并把startActivityForResult标记为了弃用,那么我们就应该开始了解一下位于 ComponentActivity 或 Fragment...其实不然,因为上面代码的需求是一个单一的回调,所以看着似乎startActivityForResult更便于维护和使用。...,value为用户是否授予该权限 CreateDocument 通过Intent.ACTION_CREATE_DOCUMENT创建一个文件 默认文件名 选择目录后返回该文件的Uri GetContent...,必须在STARTED前调用registerForActivityResult。...原因二,是若想自己调用,使用其实也很简单,只需调用Android提供的这些默认协定即可。