通过引用Xamarin.Android

问题描述

IDCardInfo.aidl代码

package com.sunmi.idcardservice;
parcelable IDCardInfo;

CardCallback.aidl代码

package com.sunmi.idcardservice;
import com.sunmi.idcardservice.IDCardInfo;
interface CardCallback {
      void getCardData(inout IDCardInfo info,int code);
}

在将两个AIDL文件引入到项目后,我将文件生成操作设置为AndroidInterfaceDescription,但是无法识别自定义类型( IDCardInfo )。尽管我有一个自定义类型的JAVA源文件,但我仍然不知道如何使用它。我真的希望有人能帮助我!

IDCardInfo.java代码

package com.sunmi.idcardservice;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by bps .
 */
public class IDCardInfo implements Parcelable {

    private String name;
    private String gender;
    private String nation;
    private String birthDay;
    private String address;
    private String idCard;
    private String department;
    private String startDate;
    private String endDate;
    private String imageAddress;
    private FingerPrint firstFinger;
    private FingerPrint secondFinger;


    public IDCardInfo() {
    }

    public IDCardInfo(String name,String gender,String nation,String birthDay,String address,String idCard,String department,String startDate,String endDate) {
        this.name = name;
        this.gender = gender;
        this.nation = nation;
        this.birthDay = birthDay;
        this.address = address;
        this.idCard = idCard;
        this.department = department;
        this.startDate = startDate;
        this.endDate = endDate;
    }

    protected IDCardInfo(Parcel in) {
        name = in.readString();
        gender = in.readString();
        nation = in.readString();
        birthDay = in.readString();
        address = in.readString();
        idCard = in.readString();
        department = in.readString();
        startDate = in.readString();
        endDate = in.readString();
        imageAddress = in.readString();
        firstFinger = in.readParcelable(FingerPrint.class.getClassLoader());
        secondFinger = in.readParcelable(FingerPrint.class.getClassLoader());
    }

    public static final Creator<IDCardInfo> CREATOR = new Creator<IDCardInfo>() {
        @Override
        public IDCardInfo createFromParcel(Parcel in) {
            return new IDCardInfo(in);
        }

        @Override
        public IDCardInfo[] newArray(int size) {
            return new IDCardInfo[size];
        }
    };

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }

    public String getNation() {
        return nation;
    }

    public String getBirthDay() {
        return birthDay;
    }

    public String getAddress() {
        return address;
    }

    public String getIdCard() {
        return idCard;
    }

    public String getDepartment() {
        return department;
    }

    public String getStartDate() {
        return startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public String getimageAddress() {
        return imageAddress;
    }

    public FingerPrint getFirstFinger() {
        return firstFinger;
    }

    public FingerPrint getSecondFinger() {
        return secondFinger;
    }

    public IDCardInfo setimageAddress(String imageAddress) {
        this.imageAddress = imageAddress;
        return this;
    }

    public IDCardInfo setFirstFinger(FingerPrint firstFinger) {
        this.firstFinger = firstFinger;
        return this;
    }

    public IDCardInfo setSecondFinger(FingerPrint secondFinger) {
        this.secondFinger = secondFinger;
        return this;
    }

    @Override
    public String toString() {
        return "IDCardInfo{" +
                "name='" + name + '\'' +
                ",gender='" + gender + '\'' +
                ",nation='" + nation + '\'' +
                ",birthDay=" + birthDay +
                ",address='" + address + '\'' +
                ",idCard='" + idCard + '\'' +
                ",department='" + department + '\'' +
                ",startDate='" + startDate + '\'' +
                ",endDate='" + endDate + '\'' +
                ",imageAddress='" + imageAddress + '\'' +
                ",firstFinger=" + firstFinger +
                ",secondFinger=" + secondFinger +
                '}';
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writetoParcel(Parcel dest,int flags) {
        dest.writeString(name);
        dest.writeString(gender);
        dest.writeString(nation);
        dest.writeString(birthDay);
        dest.writeString(address);
        dest.writeString(idCard);
        dest.writeString(department);
        dest.writeString(startDate);
        dest.writeString(endDate);
        dest.writeString(imageAddress);
        dest.writeParcelable(firstFinger,flags);
        dest.writeParcelable(secondFinger,flags);
    }

    public void readFromParcel(Parcel in) {
        new IDCardInfo(in);
    }

    static class FingerPrint implements Parcelable {
        public String position;
        public byte quality;

        public FingerPrint() {
        }

        public FingerPrint(String position,byte quality) {
            this.position = position;
            this.quality = quality;
        }

        protected FingerPrint(Parcel in) {
            position = in.readString();
            quality = in.readByte();
        }

        public static final Creator<FingerPrint> CREATOR = new Creator<FingerPrint>() {
            @Override
            public FingerPrint createFromParcel(Parcel in) {
                return new FingerPrint(in);
            }

            @Override
            public FingerPrint[] newArray(int size) {
                return new FingerPrint[size];
            }
        };

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writetoParcel(Parcel dest,int flags) {
            dest.writeString(position);
            dest.writeByte(quality);
        }

        public void readFromParcel(Parcel in) {
            new FingerPrint(in);
        }

        @Override
        public String toString() {
            return "FingerPrint{" +
                    "position='" + position + '\'' +
                    ",quality='" + quality + '\'' +
                    '}';
        }
    }


}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...