2016-06-16 3 views
1

毎回結果として100%が得られます...なぜ(iOS/SocketScan API v.10.2.227)ですか? は、ここに私のコードです:SocketScanは常に100%のバッテリ寿命を返します

-(void) onGetBatteryInfo:(ISktScanObject*)scanObj { 

    SKTRESULT result=[[scanObj Msg]Result]; 
    if(SKTSUCCESS(result)){ 

     long batteryLevel = SKTBATTERY_GETCURLEVEL([[scanObj Property] getUlong]); 
     NSLog(@"BatteryInfo %ld", batteryLevel); 

     [self setBatteryLevel:batteryLevel]; 
     [self.tableView reloadData]; 

    } else { 

     NSLog(@"ES-GetBatteryInfo set status returned the error %ld",result); 
    } 
} 

おかげで、 マーク

scanner config

+1

は、私はあなたが使用しているフレームワークに慣れていないんだonDeviceArrival通知を受け取った後まで、あなたがバッテリーレベルを照会していない、最後にdoScanApiReceive

-(void)onTimer: (NSTimer*)theTimer{ if(theTimer==ScanApiConsumer){ [ScanApi doScanApiReceive]; } } 

を呼び出しますが、 [UIDevice currentDevice] .batteryMonitoringEnabledをチェックします。監視が有効になっていないと、正確な読み取りを取得できません。 – robinkunde

+0

マーク、バッテリーの残量が100%ではないのですか? [Scanner Settings app](https://itunes.apple.com/us/app/scannersettings/id456055932?mt=8)で何が表示されますか? 100%でない場合は、バッテリーレベル通知を使用しているか、getPropertyを使用してバッテリーレベルを照会していますか? – Enrico

+0

はい、確信しています。それは72%と言われます – Mark

答えて

1

あなたがScanApiHelperとタイマーを作成viewDidLoadで...次の点を確認してください

を倍増させることができます

if(ScanApi==nil) { 
    ScanApi=[[ScanApiHelper alloc]init]; 
    [ScanApi setDelegate:self]; 
    [ScanApi open]; 
    ScanApiConsumer=[NSTimer scheduledTimerWithTimeInterval:.2 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES]; 
} 

あなたのタイマーを使用すると、

-(void)onDeviceArrival:(SKTRESULT)result device:(DeviceInfo*)deviceInfo { 
    [ScanApi postGetBattery:deviceInfo Target:self Response:@selector(onGetBatteryInfo:)]; 
} 
+0

ありがとう!それはそれだった。私はあまりにも早くそれを呼んでいた。 – Mark

関連する問題