【Android】应用偏好设置 |
您所在的位置:网站首页 › 安卓设置单个应用的语言 › 【Android】应用偏好设置 |
【Android】应用偏好设置
偏好设置DeepLink注册启动
校验落地页未设置默认落地页已设置默认落地页落地页不存在
学而不思则罔,思而不学则殆
偏好设置
在Android中启动一个Activity(隐式启动),如果落地页>1,那么系统就会弹出选在弹窗,让你选择一个默认的落地页面,如图: ResolverActivity这是系统Activity,专门处理偏好设置的页面。当隐式启动没有设置默认偏好的时候就会启动这个页面。 DeepLink上面的例子中我在两个应用中注册了DeepLink,如下: 注册 启动 //发送DeepLink startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("zy://wxf/love?name=zhangyu&id=5201314"))); 校验落地页实际在开发中不能这么写,有可能没有落地页,那么就会报错,所以一般需要在启动的时候查询一下Intent是否存在接收方。 未设置默认落地页 PackageManager pm = getPackageManager(); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("zy://wxf/love?name=zhangyu&id=5201314")); ResolveInfo resolveInfo = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); Log.d("zhangyu", "resolveInfo:" + resolveInfo);当我们没有设置偏好设置的时候,返回的是系统设置偏好的页面(ResolverActivity ): 2020-09-04 08:17:08.463 13352-13352/com.example.leakdemo D/zhangyu: resolveInfo:ResolveInfo{33175ae android/com.android.internal.app.ResolverActivity m=0x0} 已设置默认落地页当我们设置了默认偏好: 这个是否查询落地页就是目的页了,而不再是偏好设置页; 当然如果想删除这个偏好设置,需在【设置】-【应用管理】-【具体应用】-【默认打开】-【清除默认操作】: 设置一个错误的页面: 改成love404,这个协议没有注册 PackageManager pm = getPackageManager(); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("zy://wxf/love404?name=zhangyu&id=5201314")); ResolveInfo resolveInfo = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); Log.d("zhangyu", "resolveInfo:" + resolveInfo);结果如下:返回的resolveInfo:null,这种情况下在项目中一般就需要提示用户,不能直接跳转。 2020-09-04 08:18:45.616 13580-13580/com.example.leakdemo D/zhangyu: resolveInfo:null |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |