Android OS

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]

rKdEbzo.png
上一篇下一篇

猜你喜欢

热点阅读