fingerprintjs / fingerprintjs-android

Swiss army knife for identifying and fingerprinting Android devices. MIT license, no restrictions on usage in production.
https://fingerprint.com/github/
MIT License
551 stars 77 forks source link

how getting fingerprint device id in java ? #67

Closed AhmedHumk closed 1 year ago

AhmedHumk commented 1 year ago

i tried to follow the documentation

// Initialization
Fingerprinter fingerprinter = FingerprinterFactory
                .getInstance(getApplicationContext(), new Configuration(4));

// Usage
fingerprinter.getFingerprint(new Function1<FingerprintResult, Unit>() {
        @Override
        public Unit invoke(FingerprintResult fingerprintResult) {
            String fingerprint = fingerprintResult.getFingerprint();
                return null;
            }
        });

but what is function1 and unit ? unit refer to kotlin unit and i try to test in java

Alexey-Verkhovsky commented 1 year ago

Hello!

Make sure you added kotlin-stdlib as a dependency to the module where you plan to use the library. kotlin-stdlib is a small library that has great backward and forward compatibility, so it won't cause troubles for your java application.

dependencies {
  // Add this line!!!
  implementation "org.jetbrains.kotlin:kotlin-stdlib:1.5.31"

  implementation "com.github.fingerprintjs:fingerprint-android:1.2"
}

After you did it – Android Studio will suggest you corresponding imports.

AhmedHumk commented 1 year ago

Thank you for replay but i still cant figure what is function1

Alexey-Verkhovsky commented 1 year ago

Function1 is an analog for lambda function for Java 6.

Kotlin initially was supporting lambdas while Java 6 does not. Due to have interoperability with Java 6 this class appeared. If Java in your project has version which supports lambdas, Android Studio will suggest you simplify this to:

fingerprinter.getFingerprint(fingerprintResult -> {
    String fingerprint = fingerprintResult.getFingerprint();
    return null;
});

fingerprinter.getDeviceId(deviceIdResult -> {
    String deviceId = deviceIdResult.getDeviceId();
    return null;
});