এখানে একটি উদাহরণ কোড। এটি আপনার ক্রিয়াকলাপ শ্রেণিতে রাখুন:
/* put this into your activity class */
private SensorManager mSensorManager;
private float mAccel; // acceleration apart from gravity
private float mAccelCurrent; // current acceleration including gravity
private float mAccelLast; // last acceleration including gravity
private final SensorEventListener mSensorListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent se) {
float x = se.values[0];
float y = se.values[1];
float z = se.values[2];
mAccelLast = mAccelCurrent;
mAccelCurrent = (float) Math.sqrt((double) (x*x + y*y + z*z));
float delta = mAccelCurrent - mAccelLast;
mAccel = mAccel * 0.9f + delta; // perform low-cut filter
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
mSensorManager.unregisterListener(mSensorListener);
super.onPause();
}
এবং এটি আপনার অনক্রিয়েট পদ্ধতিতে যুক্ত করুন:
/* do this in onCreate */
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
mAccel = 0.00f;
mAccelCurrent = SensorManager.GRAVITY_EARTH;
mAccelLast = SensorManager.GRAVITY_EARTH;
অক্ষের থেকে পৃথক এবং মহাকর্ষের মতো স্থির ত্বরণ থেকে পরিষ্কার করে আপনি বর্তমান ত্বরণের জন্য আপনার অ্যাপ্লিকেশনটিতে যেখানেই চান সেখানে "এমএকসেল" জিজ্ঞাসা করতে পারেন। এটি প্রায় হবে। 0 যদি কোনও গতিবিধি না থাকে এবং ডিভাইসটি কাঁপানো হয় তবে> 2 বলুন।
মন্তব্যের ভিত্তিতে - এটি পরীক্ষা করার জন্য:
if (mAccel > 12) {
Toast toast = Toast.makeText(getApplicationContext(), "Device has shaken.", Toast.LENGTH_LONG);
toast.show();
}
মন্তব্য:
Accelometer নিষ্ক্রিয় করা উচিত onPause ও সক্রিয় onResume সম্পদগুলি (CPU- র, ব্যাটারি) সংরক্ষণ করুন। কোডটি ধরে নেওয়া হয় যে আমরা গ্রহ আর্থ ;-) এ রয়েছি এবং পৃথিবীর মাধ্যাকর্ষণতে ত্বরণ শুরু করে। অন্যথায় আপনি অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে একটি শক্তিশালী "ঝাঁকুনি" পেয়ে যাবেন এবং ফ্রি-ফলল থেকে জমিটি "হিট" করুন। যাইহোক, লোড কাট ফিল্টারের কারণে কোডটি মাধ্যাকর্ষণতে অভ্যস্ত হয়ে যায় এবং এটি একবার শুরু হওয়ার পরে অন্যান্য গ্রহে বা মুক্ত স্থানেও কাজ করবে। (আপনি কখনই বুঝতে পারবেন না যে আপনার অ্যাপ্লিকেশনটি কত দিন ব্যবহারে থাকবে ... ;-)