美文网首页
Android 系统开发提供Api供三方应用(三、实现系统添加接

Android 系统开发提供Api供三方应用(三、实现系统添加接

作者: MrDemo | 来源:发表于2021-10-17 16:29 被阅读0次

    这个代码就很简单了,我们既然实现了自己的接口调用,但是我们发现我们自己的Service中其实是没有任何业务逻辑处理的。及时处理也是自己的代码,我们稍微进阶一下,我们获取一下系统的锁屏时间,实现一个最简单的例子,那么我们需要修改两个

    第一修改自己的Service代码如下

    package android.hytera.wp;
    import android.os.RemoteException;
    import android.provider.Settings;
    import android.content.Context;
    /**
     * this is my SecondService for system
     * test aidl file
     */
    public class LookMessageService extends ILookMessage.Stub {
        public String value = "I am a value";
        private Context mContext;
        public LookMessageService(Context mContext){
        this.mContext=mContext;
             /*
                 可根据自己的实际情况来决定是否需要传入 Context 参数。
             */
         }
        @Override
        public void setValue(String message) throws RemoteException {
            this.value = message;
        }
        @Override
        public String getValue() throws RemoteException {
              int time=0;
                    try {
                        time=Settings.System.getInt(mContext.getContentResolver(),
                                Settings.System.SCREEN_OFF_TIMEOUT);
                    } catch (Settings.SettingNotFoundException e) {
                        e.printStackTrace();
                    }
            return time+"";
        }
    }
    

    里面添加了一个Context的对象,并且把以前的getValue的方法修改了一下

     @Override
        public String getValue() throws RemoteException {
              int time=0;
                    try {
                      //修改这个部分,不是返回value了,我们把锁屏的时间返回去了,如果是-1就是代表不锁屏
                        time=Settings.System.getInt(mContext.getContentResolver(),
                                Settings.System.SCREEN_OFF_TIMEOUT);
                    } catch (Settings.SettingNotFoundException e) {
                        e.printStackTrace();
                    }
            return time+"";
        }
    

    修改了一个构造方法,传入了一个Context
    第二就是修改一下SystemService.java里面的启动,加入了一个Context的对象,代码如下

                    LookMessageManager.getInstance().setValue("我要变化");//设置value
                    Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
                    traceBeginAndSlog("start htyera_wp service");
                    try {
                        Slog.i(TAG, "add htyera_wp Service");
                        LookMessageService look = new LookMessageService(context);
                        ServiceManager.addService(Context.LOOK_MESSAGE_WP, look);
                    } catch (Throwable e) {
                        Slog.e(TAG, "Failure starting SerialService", e);
                    }
                    Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
    
    结束
    
    

    相关文章

      网友评论

          本文标题:Android 系统开发提供Api供三方应用(三、实现系统添加接

          本文链接:https://www.haomeiwen.com/subject/tnsnoltx.html