您好,欢迎访问一九零五行业门户网

如何给Service添加access permission

//首先定义service的接口,imyservice.aidl package com.xxxx; import android.os.ibinder; import android.os.parcelfiledescriptor; interface imyservice { void doservice(int id); } //实现service类,myservice.java public class myservice extends im
//首先定义service的接口,imyservice.aidl
package com.xxxx;
import android.os.ibinder;
import android.os.parcelfiledescriptor;
interface imyservice {
    void doservice(int id);
}
//实现service类,myservice.java
public class myservice extends imyservice.stub {
    public static final string my_service = myservice;
    private static myservice sservice = null;
    static string permission = com.xxxx.permission.access_myservice;
/*
     * the entry called by system server to create service.
     */
    public static myservice main(context context) {
        if (sservice != null) {
            return sservice;
        }
        sservice = new myservice(context);
        try {
            slog.d(tag, created service);
            servicemanager.addservice(my_service, sservice);
            slog.d(tag, added service + my_service);
        } catch (throwable e) {
                slog.e(tag, failure starting myservice, e);
        }
        return sservice;
    }
private myservice(context context) {
        mcontext = context;
    }
/*
     * called from client app to retrieve interface
     */
    public static imyservice getservice() {
        ibinder b = servicemanager.getservice(my_service);
        if ( b == null) {
            return null;
        }
        return imyservice.stub.asinterface(b);
    }
@override
    public long opensession(ibinder clienttoken, int sensortype) throws remoteexception {
        //添加访问权限
if (mcontext.checkcallingpermission(permission) != packagemanager.permission_granted) {
            throw new remoteexception(permission not granted for myservice);
        }
        //做实际的工作
    }
}
其它类似信息

推荐信息