Verifinger SDK only return 100 records using objective C

General information about Neurotechnology and its software

Verifinger SDK only return 100 records using objective C

Postby amitg3 » Jul 17, 2018 17:24

Hi,
I am using Verifinger iOS SDK 10.0
-> Using
NRESULT_CHECK(NBiometricEngineListIds(biometricClient, &parhIds, &count));
only return 100 records.
-> I am creating Finger Objects using resulted Subjects.

I don"t know right implementation of NObjectSetPropertyP
Please help me with some example.
amitg3
 
Posts: 6
Joined: Jul 17, 2018 17:12

Re: Verifinger SDK only return 100 records using objective C

Postby MartynasV » Jul 18, 2018 08:22

amitg3 wrote:Hi,
I am using Verifinger iOS SDK 10.0
-> Using
NRESULT_CHECK(NBiometricEngineListIds(biometricClient, &parhIds, &count));
only return 100 records.
-> I am creating Finger Objects using resulted Subjects.

I don"t know right implementation of NObjectSetPropertyP
Please help me with some example.

Hello amitg3,

You can change listed subjects number by changing following property:
Code: Select all
   {
      NInt size = 200;

      // set list size
      result = NObjectSetPropertyP(hBiometricClient, N_T("MaximalListResults"), N_TYPE_OF(NInt32), naNone, &size, sizeof(size), 1, NTrue);
      if (NFailed(result))
      {
         result = PrintErrorMsgWithLastError(N_T("NObjectSetPropertyP() failed (result = %d)!"), result);
         goto FINALLY;
      }
   }


Or you can create "nboList" Task and call it multiple times, this way you can go through whole subjects list.
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 356
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania

Re: Verifinger SDK only return 100 records using objective C

Postby amitg3 » Jul 18, 2018 13:35

This is my implementation:-

NInt size = 200;
NResult result;
result = NObjectSetPropertyP(biometricClient, N_T("MaximalListResults"), N_TYPE_OF(NInt32), naNone, &size, sizeof(size), 1, NTrue);
if (NFailed(result))
{
result = PrintErrorMsgWithLastError(N_T("NObjectSetPropertyP() failed (result = %d)!"), result);
goto FINALLY;
}



NSMutableArray *array = [NSMutableArray array];
NInt count = 0;
HNSubject *subjects = NULL;


NRESULT_CHECK(NBiometricEngineList(biometricClient, &subjects, &count))


for (int i = 0; i < count; i++)
{

HNSubject subject = subjects[i];
NSLog(@"subjectId:%@", [self getFullIdForSubject:subject]);
if ([[self getPrefixForSubject:subject] isEqualToString:prefix])
{
if ([prefix isEqualToString:PREFIX_FINGER])
{
[array addObject:[[Finger alloc] initWithSubject:subject]];
}
}
}



Before adding
NObjectSetPropertyP(biometricClient, N_T("MaximalListResults"), N_TYPE_OF(NInt32), naNone, &size, sizeof(size), 1, NTrue);
, I was getting 100 records only.
Even After adding same code, getting 100 records.


In AppDelegate.m I write code:--

SettingHandler *dublicatesHandler = [SettingsHandler getCheckForDublicatesHandler];
if (![dublicatesHandler isPropertySet]){
[dublicatesHandler setBoolProperty:true];
}
[[BiometricsLayer sharedInstance] setupSettings];



Please help.
amitg3
 
Posts: 6
Joined: Jul 17, 2018 17:12

Re: Verifinger SDK only return 100 records using objective C

Postby MartynasV » Jul 19, 2018 11:35

amitg3 wrote:This is my implementation:-

NInt size = 200;
NResult result;
result = NObjectSetPropertyP(biometricClient, N_T("MaximalListResults"), N_TYPE_OF(NInt32), naNone, &size, sizeof(size), 1, NTrue);
if (NFailed(result))
{
result = PrintErrorMsgWithLastError(N_T("NObjectSetPropertyP() failed (result = %d)!"), result);
goto FINALLY;
}



NSMutableArray *array = [NSMutableArray array];
NInt count = 0;
HNSubject *subjects = NULL;


NRESULT_CHECK(NBiometricEngineList(biometricClient, &subjects, &count))


for (int i = 0; i < count; i++)
{

HNSubject subject = subjects[i];
NSLog(@"subjectId:%@", [self getFullIdForSubject:subject]);
if ([[self getPrefixForSubject:subject] isEqualToString:prefix])
{
if ([prefix isEqualToString:PREFIX_FINGER])
{
[array addObject:[[Finger alloc] initWithSubject:subject]];
}
}
}



Before adding
NObjectSetPropertyP(biometricClient, N_T("MaximalListResults"), N_TYPE_OF(NInt32), naNone, &size, sizeof(size), 1, NTrue);
, I was getting 100 records only.
Even After adding same code, getting 100 records.


In AppDelegate.m I write code:--

SettingHandler *dublicatesHandler = [SettingsHandler getCheckForDublicatesHandler];
if (![dublicatesHandler isPropertySet]){
[dublicatesHandler setBoolProperty:true];
}
[[BiometricsLayer sharedInstance] setupSettings];



Please help.

Hello amitg3,

Just tested on iOS, it works. I have attached C tutorial with modified code.

If you still unable to make it work, then send us(to support@neurotechnology.com) small test application, which would reproduce the same issue on our end and provide issue description.
Attachments
EnrollToServer.c
Modified tutorial to get modified size list of subjects.
(8.7 KiB) Downloaded 101 times
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 356
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania

Re: Verifinger SDK only return 100 records using objective C

Postby amitg3 » Jul 27, 2018 15:05

Thanks.
It solves my problem. :)
amitg3
 
Posts: 6
Joined: Jul 17, 2018 17:12


Return to Public

Who is online

Users browsing this forum: No registered users and 4 guests

cron