簡體   English   中英

我可以在Android上檢測物理磁場傳感器還是虛擬磁場傳感器?

[英]Can I detect physical vs virtual magnetic field sensor on Android?

“ Moto E”設備沒有磁場傳感器。 但是他們似乎使用GPS來模擬它。 但是,當然,只有在您移動時,它才真正起作用。 我希望知道它正在執行此操作,因此我可以禁用某些功能或警告用戶。

我似乎找不到像使用其他許多設備那樣的方法,因為即使被仿真,傳感器也會“存在”。

因此,該型號也沒有陀螺儀。 然而,FusedSensors似乎工作得很好(盡管可能不如其他設備那樣好)。

感謝您的輸入! 戴夫

使用的想法: <uses-feature android:name="android.hardware.sensor.compass" android:required="true" />

清單中的內容似乎根本沒有任何作用。

但是下面的代碼實際上確實有效!

PackageManager manager = getPackageManager();
boolean hasCompass = manager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS);
if (!hasCompass)
{
    Toast toast = Toast.makeText(this, "WARNING: DEVICE HAS NO COMPASS", Toast.LENGTH_LONG);
    toast.show();
}

我想在[問題]中將此歸功於pointtofuture: 如何確保android設備應用程序支持硬件功能

我應該注意的是,我在“ Moto E 2nd Gen”(沒有羅盤)和Samsung Galaxy S7 Edge(有羅盤)上進行了此操作,它是一致的。 所有的AndroidStudio模擬器都顯示為具有指南針,但模擬器設置不允許選擇或取消選擇該硬件功能(對於GPS和其他功能則如此)。 如果仿真器具有指南針仿真,那就太好了。

戴夫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM