私が試しているように見えますが、現在、iOS/SocketScan APIからバッテリレベルを取り戻すことはできません。私は、バージョン10.3.36を使用しています、ここに私のコードは、これまでのところです:SocketScanスウィフトでバッテリレベルを取得
func onDeviceArrival(result: SKTRESULT, device deviceInfo: DeviceInfo!) {
print("onDeviceArrival:\(deviceInfo.getName())")
scanApiHelper.postGetBattery(deviceInfo, target: self, response: #selector(onGetBatteryInfo))
}
func onGetBatteryInfo(scanObj: ISktScanObject) {
let result:SKTRESULT = scanObj.Msg().Result()
print("GetBatteryInfo status:\(result)")
if (result == ESKT_NOERROR) {
let batterylevel = scanObj.Property().getUlong()
print("Battery is:\(batterylevel)")
} else {
print("Error GetBatteryInfo status:\(result)")
}
はしかし、私は戻って取得値は次のとおりです。
GetBatteryInfo status:0
Battery is:1677741312
私のコードが正しければ、その後どのように私はバッテリーを作るのですか結果私はパーセンテージのように意味のある結果を取り戻しますか?
もし私がオフになったら、バッテリーレベル、ファームウェアバージョンなどの情報を元に戻すにはどうすればいいですか?
おかげ
デビッド
感謝を低下すると値がタイマーによって各120秒に更新され、このようにアクションが、それは私が考えたものを正確にですが、スウィフトで私の知る限り、それは知っている、発生する可能性がありますSKTBATTERY_GETCURLEVELについては何もないので、未解決のIDを使用するときはSKTBATTERY_GETCURLEVELを使用できません。それで、私はそれがうまくいくはずのドキュメントに従って固まってしまったのです! – Dave
@Daveあなたが正しいので、即時バージョンに存在しない '#define'マクロであるため、' SKTBATTERY_GETCURLEVEL'のコードをインライン化するためにtymacの答えを編集しました – Enrico
ありがとう@Enrico。私はObjective-Cから翻訳しました。実際に私はSocketScanのチケットを持っています。何か他のことについて質問する必要があります。 Daveのネイティブクラスメソッドを使用する場合は、単にObjective-C '拡張機能'を書くことができます。 Objective-Cを追加しました。エンリコのビットマスキングを使用すると、相当のパーセンテージを得ることができます:) – tymac