Service (aidl远程服务)

本文介绍了一个使用AIDL(Android Interface Definition Language)实现的远程服务支付功能示例。示例通过game工程调用alpay工程提供的支付服务,详细展示了服务端与客户端的实现过程及交互方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Service (aidl远程服务)

game工程调用alpay工程的pay服务

alpay工程

支付的服务

public class PayService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        AiPay aiPay = new AiPay();
        return aiPay;
    }

    class AiPay extends Stub{
        @Override
        public void pay() throws RemoteException {
            PayService.this.pay();
        }
    }

    public void pay(){
        System.out.println("检测支付环境是否安全");
        System.out.println("加密账号密码");
        System.out.println("建立连接");
        System.out.println("上传数据");
        System.out.println("完成支付");
    }

}

aidl (Android Interface Definition Language)

去掉public声明

package com.example.alpay;

interface PayInterface {
    void pay();
}

AndroidManifest.xml配置

<service android:name="com.example.alpay.PayService">
    <intent-filter >
        <action android:name="com.example.alpay"/>
    </intent-filter>
</service>

game工程

aidl文件复制到同名包下

在game工程中调用alpay工程的pay方法

// 隐式启动服务
Intent intent = new Intent();
intent.setAction("com.example.alpay");
// 绑定服务, 内部类实现ServiceConnection接口
bindService(intent, new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        asInterface = Stub.asInterface(service);
    }
    @Override
    public void onServiceDisconnected(ComponentName name) {
        // TODO Auto-generated method stub
    }
}, BIND_AUTO_CREATE);

findViewById(R.id.btn_pay).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        try {
            asInterface.pay();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值