这次我们来探讨一下MonoDroid中对AndroidManifest.xml文件的使用,这里以手机中较为常用的打电话,发短信及发邮件作为范例来进行说明。界面将如下所示:
布局文件如下:
“打电话”是每个手机必备的功能,虽然在Android平台上可以通过程序,进行各种让人目眩神迷的应用,但拨打电话这项最基本的功能,依然是每个Android工程师的必修课程。
拨打电话的关键有两个方面:首先要在AndroidManifest.xml中添加uses-permission,并声明android:name="android.permission.CALL_PHONE"使用权限。由于拨打电话输入手机底层的服务,与用户隐私及通话费用等信息息息相关,因此程序必须取得相关权限。其次,通过自定义Intent对象,带入“ACTION_CALL"这个关键(ACTION),以及通过Uri.Parse()方法将用户输入的电话号码(Data)带入,最后以StartActivity()方法(将自定义的Intent传入),即可完成通过程序直接拨打电话的工作了。
为了检查用户输入是否正确的电话格式,Activity1中增加了一个方法IsPhoneNoValid。
接下来就是关键了,刚才已经跟大家说过,要拨打电话,必须要在AndroidManifest.xml中添加uses-permission,那么这个AndroidManifest.xml是个什么东西?如果我们是在Eclipse里用Java来开发Android项目的话,AndroidManifest.xml是必不可少的,它里头包含这个Android应用程序具有哪些Activity,Service或者Receiver,你可以将它理解为我们.net里winform的app.config,asp.net里的web.config,它是应用程序的一个配置文件。MonoDroid为了简化我们手动修改AndroidManifest.xml文件的工作,将一些常用的xml元素封装成了.net里的Attribute类,在部署程序时,一个叫做mandroid.exe的工具会自动生成AndroidManifest.xml,并将这些Attribute生成相应的xml元素。例如,我们的Activity1类的上部不是有个[Activity(Label = "MonoDroidTest", MainLauncher = true)]标签吗?只要打上了这个标签,那么在部署程序时,mandroid.exe就会在AndroidManifest.xml中生成如下节点:
因此,一些常用的xml元素,例如Activity,Application,Service等都可以通过在你的Activity中加上相应的Attribute来实现。但是像这次的uses-permission,MonoDroid并没有提供相应的Attribute,我们只能通过手动添加AndroidManifest.xml文件并自己加上这些元素了。
点击vs2010的菜单”项目“,选择最后一项,即你的项目的属性,在项目属性窗口中点击Android Manifest,如果你没有手动添加过AndroidManifest.xml文件,那么应该如下图所示:
它会提示你没有找到AndroidManifest.xml,点击以新增。我们就点击一下这个链接,就会显示如下界面,并会在Properties目录下增加了一个AndroidManifest.xml文件。
Application name是你的程序名称,Package name是安装包名称,可以不填,Version number是程序的版本号,必须填数字, Version name是版本的名称,Minimum Android version代表程序支持的最低Android版本,我这里选择的1.6,Install location不知道干吗用的,但就是这个东西造成我部署程序时产生了签名的错误。Required permissions里选择CALL_PHONE表示需要打电话的权限,由于我们接下来还要发短信,所以可以把SEND_SMS也勾选上。
我们来打开AndroidManifest.xml,里面已经为我们添加了一些东西,就是我们刚才在属性窗口里填的东西,但这样还是不完整的,因为只要我们手动添加了AndroidManifest.xml文件,mandroid.exe就不会为我们自动生成该文件,也就是说我们在Activity中加的一切Attribute将变为无效,需要我们来补充完整:
注意如果你和我一样Minimum Android version里选的是1.6,那么在AndroidManifest.xml文件里一定要把android:installLocation="internalOnly"这个属性给去掉,我就是没去掉所以每次部署的时候才会出错,经与官网的技术人员讨论,应该是他们的一个bug。
好了,生成并部署程序,然后在第一个输入框里输入电话号码,点击,按钮,我们可以通过程序来进行打电话了~~~
大家也可以使用”Android.Action.Dialer”的方式,调用虚拟键盘来拨打电话,只要在自定义Intent时将Action.CALL改为Action.DIAL即可。
除了打电话,另一个常用的功能就是发短信了。发短信的使用与打电话基本类似,关键是要使用Android.Telephony.SmsManager类来实现。如果刚才没有在AndroidManifest.xml中添加发短信的权限的话,这里记得添加上。程序代码如下:
这里使用到了PendingIntent对象,它具有下列特性:当接收到PendingIntent对象时,会进行Broadcast动作,就如同使用Context.SendBroadcast()方法一样,这样就是为什么在SmsManager.SendTextMessage()方法中需要传入PendingIntent作为传送服务的参数之一。
下面我们来通过自定义Intent,并使用Android.Content.Intent.ActionSend参数来实现通过手机发送电子邮件。实际上,收发EMail的过程是通过Android内置的Gmail程序,而非直接使用SMTP的协议。由于目前的模拟器并未内置Gmail Client端程序,也因此,发送EMail的程序在送出数据后,模拟器上会发生“No application can perform this action",这是正常的。我在我的手机上运行,是可以正常发送的。
事实上,发短信和发邮件并不局限于以上方式,大家可以根据API文档试验一下其它的方式,我在这里就不详细说明了。
分享到:
相关推荐
MonoDroid学习笔记 网络整理 经典
3. **异常处理**:JAVA提供了一种结构化的异常处理机制,学习笔记会解释何时及如何使用try-catch-finally语句块,以及不同类型的异常类。 4. **内存管理与垃圾回收**:JAVA的自动内存管理是通过垃圾回收机制实现的...
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
学习笔记之——基于pytorch的FSRCNN 把我的代码上传了,后续有更正会更新这个代码
【狂神Java学习笔记——前端入门——HTML、CSS、JavaScript学习代码】是针对初学者的一份详实的学习资料,这份笔记记录了跟随B站知名up主“遇见狂神说”的java系列视频中关于前端开发的基础内容。笔记内容不仅与视频...
Mono for Android和MonoDroid是Xamarin公司的产品,它们为开发者提供了一种使用C#、VB.NET或F#等.NET语言开发原生Android应用的框架。这套学习笔记全面覆盖了这两个平台的基础知识、核心概念以及高级特性,对于想要...
个人网课学习笔记
Spring.NET学习笔记22——整合WCF(应用篇) http://www.cnblogs.com/GoodHelper/archive/2010/05/15/SpringNet_Wcf.html
刘冬编写Spring.NET学习笔记25——整合Quartz.NET例子。 原文: http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_QuartzNet.html
刘冬编写的Spring.NET学习笔记26——整合NVelocity例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_NVelocity.html
刘冬编写的Spring.NET学习笔记21——整合WebService的例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/19/SpringNet_WebService.html
RRT学习笔记——记录
2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据...
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...