मैं डिवाइस गति का पता लगाने के लिए एक रिसीवर लिखा था बदल गया है या में यह पसंद नहीं Manifest.xmlमैं प्रसारण रिसीवर में गति सेंसर का पता कैसे लगाऊंगा?
<receiver android:name="com.hanuman.sensor.receiver.SensorReceiver" >
<intent-filter
android:enabled="true"
android:exported="false" >
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
और रिसीवर onReceive() विधि कोड है अंदर:
String action = intent.getAction();
if (action.equals(Intent.ACTION_USER_PRESENT)) {
System.out.println("User is present");
Intent s = new Intent(context, MainActivity.class);
s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(s);
} else {
System.out.println("User is not present");
}
अंत में मेरा सवाल यह है कि, जब इसे गति दिया जाता है तो सेंसर का पता नहीं लगा रहा है, यह पता लगा रहा है कि मेरा डिवाइस अनलॉक में है तो यह मेरी मुख्य गतिविधि पर कॉल कर रहा है, लेकिन मैं यह जानना चाहता हूं कि मेरा डिवाइस कब गति बदल दी गई है तो मैं रिसीवर में पता लगाना चाहता हूँ। मैं उसे कैसे कर सकता हूँ?। जैसे
below-SensorManager sensorMan = (SensorManager)getSystemService(SENSOR_SERVICE);
Sensor sensor = sensorMan.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
रजिस्टर श्रोता सेंसर
sensorMan.registerListener(context, sensor,
SensorManager.SENSOR_DELAY_UI);
तो ओवरराइड onSensorChanged() विधि गति में परिवर्तन सुनने के लिए SensorManager की
अपने CPU जाग या सो है? यद्यपि आप अपना प्रसारण प्राप्त कर रहे हैं, लेकिन आप गति निर्धारित करने में सक्षम नहीं हैं, ऐसा करने के लिए आपको नींद मोड में जाने पर अपने सीपीयू को जागने की जरूरत है। शुरू करने के लिए [इसे जांचें] (https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html) – Skynet
यदि यह नींद मोड में है तो मेरी डिवाइस गति का पता नहीं लगाया गया है? – Hanuman
यदि आपका डिवाइस नींद मोड में है - दुख की बात नहीं, तो अपने डिवाइस को आंशिक वाकेलॉक का उपयोग करें। लेकिन एक बार जब आप अपने परिचालन के साथ कर लेंगे तो संसाधनों को छोड़ना सुनिश्चित करें। यह बैटरी महत्वपूर्ण है। – Skynet