アプリで Socket Mobile バーコード スキャナー (Socket 7Xi) を使用しています。Socket Mobile (ScanApiSDK-10.2.227) の SDK を統合し、スキャナーを iOS モード用にセットアップしました。私のアプリケーションは期待どおりにバーコードを受け取ります。ただし、バッテリー残量が少ないと、デバイスが少し不機嫌になるようです(と思います)。アプリケーションにバッテリ レベルを表示して、ユーザーにソケット スキャナを接続するよう促し、一般的にスキャンの問題をデバッグしたいと考えています。
バッテリーレベルを取得するために次の呼び出しを使用しています。
[_scanApiHelper postGetBattery:_deviceInfo Target:self Response:@selector(onGetBattery:)];
次のメソッドで返されます。
-(void)onGetBattery:(ISktScanObject*)obj{
ISktScanProperty* property = [obj Property];
if (property){
unsigned char level = SKTBATTERY_GETCURLEVEL([property getUlong]);
unsigned char minLevel = SKTBATTERY_GETMINLEVEL([property getUlong]);
unsigned char maxLevel = SKTBATTERY_GETMAXLEVEL([property getUlong]);
float levelf = level;
float minLevelf = minLevel;
float maxLevelf = maxLevel;
float percentf = (levelf-minLevelf)/(maxLevelf-minLevelf)*100;
NSLog(@"percent: %f", percentf);
}
}
onGetBattery メソッドが呼び出されますが、返される ulong は 1677747200 です。これは、ユーティリティ メソッドを呼び出すと、level=64、minLevel=0、maxLevel=64 になります。これは 100% (percentf = 100.00) と解釈する必要があります。
ただし、常にこの値を返すようです。完全に充電された以上のものはありません。
DeviceInfo で getBatteyLevel メソッドも試しましたが、nil が返されます。
デバイスの現在のバッテリー レベルを取得するにはどうすればよいですか?
ありがとう!