一、Shortcut 简介 Shortcut 是 Android 7.1 (API Level 25) 的新特性,类似于苹果的 3D Touch ,但并不是压力感应,只是一种长按菜单。...博主最开始考虑的是 Forms to Native ,但没成功。...原因是传入的 Forms Page 类并不是 Java 的原生类型。查阅 Xamarin.Android 的相关文档发现,这个 Type 是必须继承 Activity 类的。...既然是需要依赖 Activity 的,那就通过新建一个 Android Activity 去调用 Forms 页面。...::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 。
注意的是,只有当action和category内所有内容与intent匹配时这个Intent才能响应此Activity 每个Intent中只能指定一个action,但能指定多个category 但如果category...比如使用intent.data = Uri.parse("https://www.baidu.com")来传入将字符串转化为URI对象,并传入intent内。但这有什么用呢?...与此对应,我们还可以在标签中再配置一个标签,用于更精确地指定当前Activity能够响应的数据。标签中主要可以配置以下内容。 android:scheme。...用于指定数据的协议部分,如上例中的https部分。 android:host。用于指定数据的主机名部分,如上例中的www.baidu.com部分。 android:port。...用于指定可以处理的数据类型,允许使用通配符的方式进行指定。 只有当标签中指定的内容和Intent中携带的Data完全一致时,当前Activity才能够响应该Intent。
surface.Holder; //设置线程回调为本类 holder.AddCallback(this); //表明该Surface不包含原生数据...,设置图片类型为Jpeg.重新把参数赋值给照相机...., 然后添加Activity启动模式,为SingleTop....那么如何获取SaoYiSaoActivity给的返回值呢?....所以不要抱怨Xamarin的资料少..你能查到相关的JAVA资料..基本也就搞定Xamarin了..
,方便我们操作获取assets文件下的文件:AssetManager 6.12、Android学习之Intent使用 Xamarin Android中Activity之间传递一个简单的数值 //...Bundle对象作为容器,通过调用Bundle的Put**** 先将数据存储到Bundle中,然后调用Intent的PutExtras方法将Bundle存入Intent中,调用的时候也是一样的道理。...只有是非负数时,Activity退出时,这个码会返回到onActivityResult()。...resultCode,结果码,用于标识返回数据来自于哪个新Activity,它的值一般是RESULT_CANCELED, RESULT_OK, RESULT_FIRST_USER。 ?...到时候在《C# Xamarin移动开发项目实战篇》课程中,阿笨将自己的实际项目经验毫无保留的分享给大家。快速通过Xamarin打造一个Android适合于后端管理系统App应用程序。
二、添加文件类型 添加可打开文件类型,这里我们需要在非启动Activity中配置,我们刚才创建的项目里面自带了一个MainActivity,我们启动程序时就会打开这个Activity。...那么就会用到Intent,这里的intent-filter就是起到过滤的作用,不能什么都能收到。它里面有三个数据, action 表示意图。...android.intent.action.VIEW,用于显示用户的数据。比较通用,会根据用户的数据类型打开相应的Activity。 category 表示类别。...android.intent.category.DEFAULT,设置Activity是否应该作为一个段数据执行的默认选项。 data 表示数据。mimeType,限定识别的文件类型。...这里设置为表示支持所有数据类型。
Android路由其实就是解决这样的问题,那么实现一个最基础的Android路由主要有以下几步: 定义url,分配url给Activity; 建立路由表,url----->Activity 处理跳转,给定一个...(context, value)) } }} 这里就做了匹配,然后跳转,虽然很扯,但足以说明路由的精髓,后面会一步步地丰满。...这里我们用ProxyActivity进行scheme的设置,清单文件里的配置如下: activity android:name=".ProxyActivity"> intent-filter...{ super.onCreate(savedInstanceState) intent.data?....apply { goToPages(this@ProxyActivity, path) finish() } } intent.data可以获取从外部
当使用Activity.startActivityForResult()启动一个Activity时,可以使用Activity.setResult()返回一些结果信息,可以在Activity.onActivityResult...() 中得到返回的结果....二:Intent对象 一个Intent对象包含了很多数据的信息,比如要执行的动作,类别,数据,附加信息等等,下面就一一列列出一个Intent中包含的信息。...不同的Action有不同的数据规格,比如ACTION_EDIT动作,数据就可以能包含一个用于编辑文档的URI,如果是一个ACTION_CALL动作,那么数据就是一个包含了tel:6546541的数据字段...当点击“空Action的Activity”的时候,会报异常,因为Intent什么都没有设置,没有任何的Activity能处理它 。
static final String ACTION_VIEW = "android.intent.action.VIEW"; 官方的注释说明ACTION_VIEW表示展示数据的页面,系统默认的Action...android:path="/main"/> intent-filter> activity> 最后看一下效果: 那么如何在通过url给app传递参数呢?...wd=android 其中wd=android就是我们要添加的参数,现在假设我们需要为Activity传递一个参数id,我们就可以修改uri为: lzp://demo/main?...id=111 客户端接收key为id的参数的方法: if (intent != null && intent.data !...我们有两种办法解决这个问题: 1、在刚才的if语句增加else判断,当参数为空的时候,进行finish操作。 2、通过pathPattern,通过通配符设置必须有参数。
Kotlin 以其简洁实用的语法,赢得了很多Java 开发者,尤其是 Android 开发者的喜爱与应用。...非空断言 //Do not fun testNotNullAssertion(feed: Feed) { feed.feedItemList.first().author!!....{ val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse("https://droidyue.com")...`package` = "com.android.chrome" intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) return intent...= Uri.parse("https://droidyue.com") `package` = "com.android.chrome" addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
其中onCreate和onRestoreInstanceState方法来恢复Activity的状态的区别: onRestoreInstanceState回调则表明其中Bundle对象非空,不用加非空判断...onCreate需要非空判断。建议使用onRestoreInstanceState。...(2) 可见但非前台Activity——比如Activity中弹出了一个对话框,导致Activity可见但是位于后台无法和用户交互。...(true))可以获取上一个接收者存入在结果对象中的数据。...如果需要完成一项比较耗时的工作,应该通过发送Intent 给 Service ,由 Service 来完成。
尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 启动 Activity 启动服务 传递广播 Intent 分为两种类型: 显式 Intent:按名称(完全限定类名...如果结果为非空,则至少有一个应用能够处理该 Intent,且可以安全调用startActivity()。 如果结果为空,则不应使用该 Intent。如有可能,您应停用发出该 Intent 的功能。...PendingIntent 的主要目的是授权外部应用使用包含的 Intent,就像是它从您应用本身的进程中执行的一样。...Intent 操作 Intent 数据(URI 和数据类型) Intent 类别 下文根据如何在应用的清单文件中声明 Intent 过滤器,描述 Intent 如何与相应的组件匹配。...#queryIntentActivities(android.content.Intent, int)) 将返回能够执行那些作为参数传递的 Intent 的所有 Activity 列表,而 [queryIntentServices
但是,可以使用 FlyoutItemIsVisible 属性将项隐藏在浮出控件中,并使用 IsVisible 属性将其从浮出控件中删除: 类型为 bool 的 FlyoutItemIsVisible 指示项是否已隐藏在浮出控件中但仍可以通过...这样,开发者就可以计算滚动进度,显示给用户。同时,利用ScrollView提供的滚动结束事件Scrolled,可以提示用户,或者加载新的内容。...() { var activity=Xamarin.Forms.Forms.Context as Activity; return activity.PackageManager.GetPackageInfo...value) { // value 为 js 返回的结果 // 转换为 string 写法来自:Xamarin.Forms.Platform.Android.JavascriptResult...Android 清单包含 android:debuggable 属性,该属性控制是否可以调试应用程序。 将 android:debuggable 属性设置为 false 被视为一种很好的做法。
前言 我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器。 在Xamarin里子页面为Fragment,翻译过来是片段的意思。...但这里我们要重写的是OnCreateView,这点需要留意一下。...Activity之间传值 Android的页面之间传值是比较特别,它是使用Intent的PutExtra方法来传值的。 而PutExtra方法是一个被重载的方法,如下图所示: ?...也就是说,在接收上个页面传来的数据时,我们需要根据数据类型,来调用该类型对应的接收方法,来接收数据。 参数传递界面如下图所示: ?...相关文章: C#-Xamarin利用ZXing.Net.Mobile进行扫码 C#-Xamarin的Android项目开发(三)——发布、部署、打包 C#-Xamarin的Android项目开发(二)—
Google 已经深刻意识到了这个问题,因此规定在 Android 12 之后,如果应用的 Activity 中包含 intent-filter,就必须要显式指定 android:exported 为...设置为 false,但这只是防止了用户主动发送的数据,无法拦截通过 setResult 返回的数据; 确保获取到的 Intent 来自于可信的应用,比如在组件上下文中调用 getCallingActivity...甚至关于该属性的默认值定义也是一样的,即默认是 false,但包含 intent-filter 时,默认就是 true。同样,在 Android 12 及以后也强制性要求必须显式指定服务的导出属性。...URI(可以不和请求的 URI 一致),最后使用 setResult(code, intent) 返回给客户端; 客户端的 onActivityResult 收到返回的 Intent,使用其中的 URI...一个经典的案例就是早期的 broadAnywhere 漏洞,Android Settings 应用中的 addAccount 方法内创建了一个 PendingIntent 广播,但 intent 内容为空
:name="android.intent.category.DEFAULT"/> intent-filter> 2.测试的Activity ---->[BrActivity...静态广播中的数据获取 广播接收者的onReceive回调中有intent: Intent,你应该明白怎么传数据了吧 ---->[BrActivity#onCreate]--------------...//为intent添加数据 intent.putExtra("toast_data", id_et_txt.text.toString()) intent.component...1元 之后将石头给了雕刻家,并将预期的价值1000元传递给雕刻家 之后雕刻家将石头给了宝石家,并将预期的价值10W元传递给宝石家 之后宝石家将石头给了收藏家,并将预期的价值100W元传递给收藏家...: Intent) { val action = intent.action val uri = intent.data if (action == "android.intent.action.PACKAGE_ADDED
...... } 在示例中我们给 Activity 增加了 @NonNull 的注解,就是向所有调用这个方法的人声明了一个约定,调用方应该保证传入的 activity 非空。...Android Studio 的空值检查,在代码提示中 Intent 的 getParcelableExtra 方法返回的是非空,因此这里你直接用方法结果赋值不会有任何警告。...我的观点是不要因噎废食,使用时多注意点就可以避免大部分问题。 4. !! 强行转为非空 当将可空类型赋值给非空类型时,需要有对空类型的判断,确保非空才能赋值(Kotlin 的约束)。 我们使用!!...let { //非空如何 } ?: let { //为空又如何 } 但这里有几个小坑。 1....: let { it.hashCode() // it 为 activity } } 结果自然会发现值不一样。
为RESULT_ERROR_GENERIC_FAILURESentIntent可能包含无线电技术特定值的额外“错误代码”,通常只对故障排除有用。...抛出 IllegalArgumentException 如果文本为空 ContactActivity.java import android.content.Intent; import android.os.Bundle...= lists.get(position).getPhone(); // 把数据返回给调用者 Intent intent = new Intent...(); intent.putExtra("phone", phone); // 把结果返回给调用者 setResult...= str[position]; // 把smsContent返回给调用者 Intent intent = new Intent();
越权绕过漏洞 在Android系统中,Activity默认是不导出的,如果设置了 exported="true" 这样的关键值或者是添加了intent-filter>这样的属性,并且没有显示的设置为...还有通过Intent给Activity传输畸形数据使得程序崩溃拒绝服务影响用户体验或Activity界面被劫持产生欺诈等安全事件。 利用 1.启动 通过启动主界面子界面,在返回即可进入主界面。...intent 3.有返回数据时不应包含敏感信息 4.不应发送敏感信息 5.当收到返回数据时谨慎处理 组件导出导致钓鱼欺诈 Android为了提高用户的用户体验,对于不同的应用程序之间的切换,基本上是无缝...隐式启动intent包含敏感数据 没看懂 拒绝服务 Android系统提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android...crash的目的, 简单的说就是攻击者通过intent发送空数据、异常或畸形数据给受害者应用,导致其崩溃。
Activity 之间数据传递 多线程 Layout与Widget Android的页面视图由XML来声明,而所有页面的这些UI组件都由一个布局(Layout)来组织。...Activity 之间数据传递 Android中Layout与Activity大家可以理解为webform中的.aspx页面与.aspx.cs code behind。...只是在Activity中我们还需要手动通过FindViewById来找到这个UI组件。如果Activity代表了一整个View,那我们来看看在不同的View之间如何传递数据。..., typeof(CheeseDetailActivity)); // 将数据Put到Extra中即可 EXTRA_NAME为这个数据的key intent.PutExtra(CheeseDetailActivity.EXTRA_NAME...Xamarin为我们提供了一种简单、高效的方式来开发强大的、如原生般体验的APP。结合C#优雅的语法和宇宙最强大的IDE,这个事情也许值得一试。
领取专属 10元无门槛券
手把手带您无忧上云