《Kivy A to Z -- 如何从python代码中直接访问Android的Service》 一文中讲到了如何从python访问java的service,这一篇再来讲下如何创建一个基于Binder的Python Service以及如何从Java代码中访问这个Python创建的Service。
先来看代码,再作下解释:
接《Kivy A to Z -- 如何从python代码中直接访问Android的Service》一文,我们在相关的文件中增加代码:
binder_wrap.cpp
using namespace android;
class PythonBBinder : public BBinder
{
public:
static status_t instantiate(const char *name,const char *descriptor,fnOnTransact onTrans,void *data);
PythonBBinder(const char *name,const char *descriptor,fnOnTransact onTrans,void *data);
virtual ~PythonBBinder();
virtual status_t onTransact(uint32_t code,
const android::Parcel &data,
android::Parcel *reply,
uint32_t flags);
private:
android::String16 name;
android::String16 descriptor;
fnOnTransact mOnTransact;
void *mData;
};
status_t PythonBBinder::instantiate(const char *name,const char *descriptor,fn