Android 字符驱动#3#应用层调用服务访问字符驱动
2019-05-06 本文已影响0人
古风子
创建app的过程省略,直接贴上主要的逻辑代码
package com.jdf.hal.activity;
import android.os.Bundle;
import android.os.RemoteException;
import android.view.View;
import android.widget.TextView;
import com.jdf.android.hal.IHelloService;
import com.jdf.common.BasicActivity;
import com.jdf.hal.R;
public class HalMainActivity extends BasicActivity {
IHelloService helloService;
int value = 0;
TextView retInfo;
TextView lastSetInfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hal_main);
//获取HelloService服务
helloService = IHelloService.Stub.asInterface(android.os.ServiceManager.getService("hello"));
initView();
}
private void initView() {
retInfo = (TextView) findViewById(R.id.ret);
lastSetInfo = (TextView) findViewById(R.id.last_set);
findViewById(R.id.getVal).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int val = -1;
try {
//获取驱动的值
val = helloService.getVal();
appendTextInfo("get val from hal:" + val);
} catch (RemoteException e) {
}
}
});
findViewById(R.id.setVal).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
lastSetInfo.setText("last set val:" + value);
//设置驱动的值
helloService.setVal(value);
value++;
} catch (RemoteException e) {
}
}
});
}
private void setTextInfo(String info) {
retInfo.setText(info);
}
private void appendTextInfo(String info) {
retInfo.append("\n");
retInfo.append(info);
}
}
主要逻辑为:
获取服务->访问接口
IHelloService helloService = IHelloService.Stub.asInterface(android.os.ServiceManager.getService("hello"));
int val = helloService.getVal();
helloService.setVal(value);
app的实际运行效果为
![HalMainActivity]
