完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
当Android1111)自定义服务制作(3)-硬件制作和权限管理 中完成了硬件HAL层的调用后,自定义Service也制作完成。现在主要是实现一下如何调用自定义Service.上一篇把系统服务跟系统现在马上就可以选择打开的权限,APP提前通知在下一次调用自建
服务 。在其中添加AndroidManifest.xml 文件,内容如下: 《?xml ?》 《manifest xmlns: android: android:》 《application android: android:》 《activity android: android:》 《intent-filter》 《action android: /》 《category android: /》 《/intent-filter》 《/activity》 《/应用》 《/manifest》 同目录下添加Android.mk文件 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := Hello LOCAL_SDK_VERSION := current include $(BUILD_PACKAGE) 在Hello.java中的内容如下: package com.sommer.hello; 导入 com.sommer.hello.R; 导入android.app.Activity; 导入android.os.ServiceManager; 导入android.os.Bundle; 导入android.os.IHelloService; 导入android.os.RemoteException; 导入android.util.Log; 导入android.view.View; 导入 android.view.View.OnClickListener; 导入android.widget.Button; 导入 android.widget.EditText; 公共类 Hello 扩展 Activity 实现 OnClickListener { private final static String LOG_TAG = “com.sommer.hello.Hello”; 私人 IHelloService helloService = null; 私有 EditText valueText = null; 私有按钮 readButton = null; 私人按钮 writeButton = null; 私人按钮 clearButton = null; /** 在第一次创建活动时调用。*/ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 设置内容视图(R.layout.main); helloService = IHelloService.Stub.asInterface( ServiceManager.getService(“hello”)); valueText = (EditText)findViewById(R.id.edit_value); readButton = (Button)findViewById(R.id.button_read); writeButton = (Button)findViewById(R.id.button_write); clearButton = (Button)findViewById(R.id.button_clear); readButton.setOnClickListener(this); writeButton.setOnClickListener(this); clearButton.setOnClickListener(this); Log.i(LOG_TAG, “Hello Activity Created”); } @Override public void onClick(View v) { if(v.equals(readButton)) { 尝试 { int val = helloService.getVal(); 字符串文本 = String.valueOf(val); valueText.setText(文本); } catch (RemoteException e) { Log.e(LOG_TAG, “从设备读取值时出现远程异常。”); } } else if(v.equals(writeButton)) { 试试 { String text = valueText.getText().toString(); int val = Integer.parseInt(文本); helloService.setVal(val); } 捕捉(远程异常 e){ Log.e(LOG_TAG, “将值写入设备时出现远程异常。”); } } else if(v.equals(clearButton)) { String text = “”; valueText.setText(文本); 在layout下创建main.xml,内容如下: 《 ?xml ?》 《 LinearLayout xmlns: android: android: android: 》 《LinearLayout android: android: android: android:》 《TextView android: android: android:》 《/TextView》 《EditText android: android: android:》 《/EditText》 《/LinearLayout》 《LinearLayout android: android: android: android:》 《Button android: android: android:》 《/Button》 《按钮 安卓: 安卓: 安卓:》 《/Button》 《Button android: android: android:》 《/Button》 《/LinearLayout》 《/LinearLayout》 自此所有的源代码都完成了。可以通过指令来编译整个自定义系统App。整个代码,从驱动到jni再到自定义服务就都打通了。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1861 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
2317 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
5129 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 00:49 , Processed in 0.494941 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号