我正在編寫一個程序,我能夠獲取光線傳感器值和當前電池電量,但只有光線值發生變化以及電池電量發生變化時。有沒有辦法隨時獲得這兩個值?就像用戶運行我的程序時一樣,我想立即獲取當前值,而不必等待它們改變。如何隨時爲Android獲取光線傳感器值和電池電量?
2
A
回答
2
如果你的代碼,以獲得的價值,當它改變時,你可以存儲在每一個變化的變量的值,並在剛更新的setter方法的變量。然後,無論何時您需要當前值,只需使用getter方法調用該變量即可。
所以,如果你的方法是這樣的
private void monitorBatteryState() {
BroadcastReceiver battReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(this);
int rawlevel = intent.getIntExtra("level", -1);
int scale = intent.getIntExtra("scale", -1);
int status = intent.getIntExtra("status", -1);
int health = intent.getIntExtra("health", -1);
int level = -1; // percentage, or -1 for unknown
if (rawlevel >= 0 && scale > 0) {
level = (rawlevel * 100)/scale;
}
setBatteryLevel(rawlevel); // setter method.
}
}
public void setBatteryLevel(rawlevel) {
batteryLevel = rawlevel;
}
public int getBatteryLevel() {
return rawlevel;
}
你可以有一個getter方法返回currentl電池電量,rawlevel
,並且可以爲光傳感器值做同樣的。
0
把這個在您的mainActivity: 這是不僅是因爲我看到別人發佈了有關電池電量的光傳感器值。
SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
Sensor mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
//don't know if you can put lightSensorValue here, if not try adding it as a member field
final int lightSensorValue;
mSensorManager.registerListener(new SensorEventListener()
{
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
//do something when accuracy is changed, you probably don't need this
}
public void onSensorChanged(SensorEvent event)
{
lightSensorValue = event.values[0];
}
}, mLight, SensorManager.SENSOR_DELAY_NORMAL);
編輯:我再次閱讀你的問題,看到你想要手動隨時獲得它。那麼,只要價值被改變,這個值就會被更新,所以你總是得到最新的信息。
您可以嘗試將延遲更改爲SensorManager.SENSOR_DELAY_FASTEST
,並且刷新率會快很多。
相關問題
- 1. Android電池電量
- 2. 當使用intent和BroadcastReceiver來獲取android電池電量時的怪異行爲
- 3. Android攝像頭取光傳感器值
- 4. SocketScan在Swift中獲取電池電量
- 5. Android的電池電量低
- 6. 在android小部件中獲取電池電量
- 7. Android硬件電池溫度,傳感器在哪裏?
- 8. 當電池電量達到10%時開始/取消計時器
- 9. iOS:如何正確獲取電池電量
- 10. 如何從Arduino讀取電池電量,同時通過9v電池電池桶插孔
- 11. 如何測量android手機電池的電流電壓和電流?
- 12. 如何在Windows UWP應用程序上獲取電池電量不足閾值?
- 13. Android從傳感器獲取傳感器值
- 14. 如何獲取電池統計中的Android在運行時?
- 15. 如何在Android中以幾小時的時間獲取電池剩餘價值?
- 16. 如何獲取實時電池電量在iOS上有1%的粒度
- 17. Android:獲取平均傳感器值
- 18. android:光傳感器nullPointerException
- 19. 獲取電池的溫度android
- 20. 如何獲取電池狀態?
- 21. 如何讀取電池充電次數?
- 22. iOS/Android GPS電池吸取?
- 23. MonoTouch電池電量始終爲-1
- 24. Android - 在線vs離線解析 - 電池
- 25. 獲取電池級JavaScript
- 26. 如何在android中備份電池電量數據?
- 27. 如何在Android設備中模擬電池電量不足
- 28. 如何通過android編程檢測電池剩餘電量?
- 29. 如何獲取實時圖的Android傳感器數據時間?
- 30. 傳輸Eddystone信標時電池電量不足
這對我不起作用,經過研究,我發現它有一些:在當前SDK中沒有android.os.SystemProperties。這是源代碼中僅供固件使用的類。 是否有任何其他方式獲得光傳感器值和電池電量而不用等待它改變? – John 2010-02-15 06:58:55
我更新了我的答案,如果在給定時間沒有* direct *方式返回值,那麼這是一種替代方法。 – 2010-02-15 14:17:28