Red de conocimiento informático - Material del sitio web - Cómo utilizar AIDL en AndroidStudio

Cómo utilizar AIDL en AndroidStudio

1. Primero, cree un proyecto de AndroidStudio (esta es una aplicación remota que proporciona métodos para llamar desde otra aplicación), cree una carpeta Aidl (mismo nivel que la carpeta Java) en el directorio principal, haga clic derecho en aplicación->Nuevo -> Carpeta-> Carpeta AIDL

Escriba la descripción de la imagen aquí

2. Cree un paquete en Aidl, cree un archivo *.aidl en el paquete, haga clic derecho en Aidl- >Nuevo-> AIDL->Archivo AIDL (el cuadro rojo en la imagen es el aspecto que tendrá después de la creación)

Escriba la descripción de la imagen aquí

3. Escriba en el archivo Aidl el método que se debe utilizar. llamado>

@Nullable

@Override

IBinder público onBind (intención de intención) {

return miBinder

p >

}

IBinder privado mIBinder = new FDAidlInterface.Stub() {

@Override

llamada nula públicaFDSetRoute() lanza RemoteException {

@Override p>

Log.e("wjh ", "Solicitud recibida desde el control remoto"

}

@Override

public int add(int a, int b) throws RemoteException {

Log.e("wjh", "Solicitud recibida desde el control remoto");

return a+b;

}

};

}

5. Registra el servicio en el archivo de manifiesto

Escribe la imagen. descripción aquí

6. Cree una aplicación local para llamar a los métodos proporcionados por la aplicación remota. De manera similar, cree una carpeta Aidl en la carpeta de inicio, cree un paquete con el mismo nombre que la aplicación remota Aidl y luego copie el archivo Aidl de la aplicación remota

Escriba la descripción de la imagen aquí

p>

7. Comience a escribir código en la aplicación local y cambie el método a onCreate

private FDAidlInterface mFDAidlInterface;

private ServiceConnection conn

private void bindService. () {

Intent intención = new Intent( "com.

intent.setPackage("com.example.admin.fdaidl");

conn = new MyConn();

bindService(intent,conn, Context.BIND_AUTO_CREATE);

}

8. >

intenta {

int num = mFDAidlInterface.add(3,4

} catch (RemoteException e) {

Log.e (); "wjh", "¡Error al llamar al método remoto!");