私は現在、非常に基本的だと思っていたタスクに行き詰まっています。iOS と Android の重力センサーを照会する必要がある Kotlin/Native のライブラリを開発しています。
ほとんどすべてのロジックは共通部分にあり、デバイス センサーとの通信だけがプラットフォーム固有のメソッドに実装されています。驚くべきことに、すべての iOS コア ライブラリ (この場合は CoreMotion) が移植されているため、実装は非常に簡単でした。
この場合、CoreMotion を使用すると、画面の向きが X、Y、または Z に関して変化するたびにコールバックを呼び出す重力センサーにリスナーを追加できます (私は Z に興味があります)。
Androidでは、私はこのようなことをします
private lateinit var sensorManager: SensorManager
fun setupSensor() {
this.sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)?.let {
this.accelerometer = it
}
sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY)?.let {
this.gravity = it
}
}
しかし、必要なインポートは Kotlin/Native では利用できません
import android.hardware.Sensor;
import android.hardware.SensorManager;
Kotlin/Native でこの種のハードウェア (重力センサー) にアクセスする方法はありますか? または、Kotlin/Native の Android 固有の部分の方が優れていますか?