今天主要是学习了安卓中如何实现安卓提供的各种接口,或者说功能块,比如说打电话,发短信这种需要权限,涉及系统安全的操作。下面,,开始实现打电话和发短信
打电话
我实现的界面如下(运用了表格布局):
按键可以做好看一点,但是感觉太麻烦,就直接用button了,它的定义如下:
<Button android:id="@+id/button1" android:layout_width="100dp" android:layout_height="70dp" android:onClick="digital_click" //全部绑定同一个事件 android:text="1" /> //存放值,
按键对应的事件如下
public void digital_click(View view){ Button btnDigital=(Button) view; String text=btnDigital.getText().toString(); a=a+text; textResult.setText(a.toString()); }
就是简单的读取该按键的值,并将它加到现在的字符串的后面,显示到对应的显示框中。
拨打按键对应的事件如下:
public void dial(View view) { String number=textResult.getText().toString(); Intent intent = new Intent(); intent.setAction(intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+number)); startActivity(intent);//方法内部会自动为Intent添加类别: android.intent.category.DEFAULT }
它主要是得到当前输入的号码,并调用Intent来实现打电话,可以说这一段是关键点,不过,在运行之前,还要在对应的对方加入下面的代码来获取权限
<uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.VIBRATE" />
而页面中的删除按键,是来删除字符串的最后一个字符,比较简单,不再说明。
其中的新建联系人,也是一个按键,它绑定的事件如下:
public void addContact(View view){ Intent it = new Intent(Intent.ACTION_INSERT,Uri.withAppendedPath(Uri.parse("content://com.android.contacts"),"contacts" )); it.setType("vnd.android.cursor.dir/person"); String number = textResult.getText().toString(); //得到号码 it.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_PHONE,number); startActivity(it); }
主要是得到当前输入的号码,跳转并传递号码给系统的新建联系人页面。
至于短信,我是这样实现的:
这个是短信页面(虽然点击发送,它不是直接发送,而是跳转到系统的发送短信页面),它同样是实现了发送短信的接口,接口的实现如下:
public void send(View view){ String telMsg=message.this.tel.getText().toString(); String contentMsg=message.this.content.getText().toString(); Uri uri=Uri.parse("smsto:"+telMsg);//接收人手机 Intent it=new Intent(); it.setAction(Intent.ACTION_SENDTO);//指定action,我要发短信 it.putExtra("sms_body", contentMsg);//设置信息内容 it.setType("vnd.android-dir/mms-sms") ;//设置MIME类型 it.setData(uri);//设置数据,要去的地方 message.this.startActivity(it); }
在实现这个页面的时候,我想让前面的页面将用户可能输入的号码传递给该页面,最后我在网上找到了这样一个实现方法:
public void send_message(View view){ //在前一个页面对应的按键中绑定该事件,用来跳转和传值 String number=textResult.getText().toString(); //得到号码 Intent intent=new Intent(); intent.setClass(bo_hao.this, message.class); intent.putExtra(to_you, number); /将号码和一个前面定义的变量绑定 bo_hao.this.startActivity(intent); }
而在短信页面,实现下面的代码:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.message); Intent intent =getIntent(); //相当于建立连接 String to_you=intent.getStringExtra(bo_hao.to_you); //得到值 this.tel=(EditText)super.findViewById(R.id.tel); //将值赋给对应的输入框 tel.setText(to_you); this.content=(EditText)super.findViewById(R.id.content); }
上面,大概就是今天学到的东西了,主要的还算知道如何实现安卓的接口了吧,其次是对安卓的编写更加熟练了。如果以后要做安卓,总体还算比较简单,但是写代码是时候不好调试,出错了也不知道错在哪,而且还要熟悉各种组件和接口。
ps:今天写代码的时候,就一个简单的跳转,都出错,检查了好久才发现是对应页面中的一个变量名没改过来,真的坑,找错太难了
相关推荐
这个压缩包“android-ndk-r25b-windows.zip”包含了NDK的第25个版本,专为Windows操作系统设计。NDK的主要功能是让开发者能够在Android应用中使用原生代码,例如C、C++,以实现高性能计算或利用硬件加速等功能。 **...
"android-33" 指的是 Android SDK 的一个特定版本,代表了 Android 操作系统的第 33 版本。这个版本可能对应着某个特定的 Android API 级别,例如 Android 13。在 Android 开发中,API 级别是衡量操作系统版本的关键...
Android SDK (SDK Platforms)-android-32.zip 是一个包含了Android操作系统第32版本(也称为Android 13)平台开发工具的压缩包。这个压缩文件是Android开发者在构建、测试和调试针对Android 13应用时所必需的核心...
API Level 26对应的是Android 8.0,包含了系统的类库、API接口和系统服务,开发者可以调用这些接口来实现应用功能。 3. **Android Oreo (8.0)**:这是Android操作系统的第八个主要版本,发布于2017年。它的主要特性...
Android SDK (SDK Platforms)-android-34.zip 是一个包含了Android操作系统第34版本(也称为Android 13)开发所需平台工具的压缩包。这个压缩文件对于开发者来说至关重要,因为它提供了构建、测试和调试Android应用...
3. **android-31**:这个标识符代表了Android的第31个版本,也就是Android 12。每个Android版本都有一个唯一的数字代号,用于区分不同版本的特性、API级别和安全更新。 4. **API级别**:Android 12的API级别是31。...
标题“android-15 platforms”指的是Android操作系统的第15个版本,也就是API级别15,对应的Android版本是冰淇淋三明治(Ice Cream Sandwich,简称ICS)。这个版本的Android是在2011年10月发布,是Android系统发展中...
2. **Java API**:提供了与C++库对应的Java接口,方便Android开发者在Java代码中使用OpenCV功能。这些API包括预定义的类和方法,如`Mat`对象(用于处理图像数据)和`CameraBridgeViewBase`(用于显示摄像头预览并...
4. **屏幕录像**:内置的屏幕录制功能让用户可以轻松记录并分享他们的屏幕活动,无需第三方应用。 5. **折叠屏设备支持**:为了适应折叠屏手机和平板,Android 10进行了相关优化,确保应用能在不同屏幕尺寸间平滑...
5. **预编译库支持**:NDK R13B支持预编译库的导入,这简化了第三方库的集成,比如OpenCV、FFmpeg等。 三、使用NDK开发流程 1. **安装配置**:下载并解压`android-ndk-r13b-windows-x86_64.zip`,设置环境变量,...
Android-28是Android操作系统的第28个版本,对应的是Pie(Android 9.0)更新。这个SDK(Software Development Kit)包含了开发者为Android 9.0平台构建应用程序所需的所有工具和资源。在深入讨论Android 9.0 SDK之前...
在Android 9.0中,Project Treble进一步完善,增强了对硬件抽象层(HAL)的支持,使得第三方ROM和厂商可以更快地适配新的Android版本。 2. **Digital Wellbeing**:为了帮助用户更好地管理他们在移动设备上的时间,...
2. **系统库**:与隐私保护相关的库文件,如广告标识符(Ad ID)管理、限制第三方跟踪等。 3. **权限系统更新**:可能包括新的权限控制机制,允许用户更好地控制自己的数据。 4. **示例代码**:展示如何在应用中正确...
10. **应用兼容性**:确保第三方应用程序能够在目标设备上正常运行,不会因为设备的差异导致功能缺失或错误。 在使用`android-cts-2.3_r13-linux_x86-arm.zip`之前,开发者或测试人员需要准备一个兼容的Linux环境,...
3. **无依赖**: ncnn不依赖于任何第三方库,降低了集成难度,只需将编译好的lib文件直接引入项目即可。 4. **模型转换**: 支持将Caffe、TensorFlow、ONNX等多种主流深度学习框架的模型转换为ncnn的模型格式,方便...
- **遵循Android兼容性定义文档**:这是第一步,该文档详述了兼容Android设备所需的所有软件和硬件特征。除非特别注明,所有特征都是实现Android兼容性的必要条件。开发者应详细阅读与目标Android版本对应的兼容性...
同时,这也为集成第三方C/C++库提供了可能。 总结来说,"android-ndk-r10(eclipse下用亲测)"是一个用于学习和实践Android JNI开发的资源,它涵盖了Eclipse环境下的配置、JNI接口定义、本地代码实现、库的编译和...
最新SDK(当前版本3.1.5),并解压fraudmetrix-xxx.zip文件。解压后文件目录为: ...或者已经存在其他架构的第三方so,则需要将对应的架构也引入工程中,否则将可能引起设备指纹获取异常、crash等未知问题。
Android-29是Android操作系统的第29个版本,对应的是Android 10。这个版本引入了许多新功能和改进,旨在提升用户体验和开发者效率。下面我们将深入探讨Android-29 SDK源码中的关键知识点。 1. **权限管理增强**: ...
Android开发中,Service Provider Interface (SPI) 是一种用于扩展应用程序框架的机制,允许开发者在运行时动态地发现和加载第三方实现。通常,Android系统服务如ContentProvider、BroadcastReceiver等已经实现了SPI...