11 ارسال در این موضوع قرار دارد

سلام

دوستان والا بنده یه برنامه کاربردی در زمینه خودم دارم که این برنامه چیزی که خیلی رو اعصابه باید برای وصل شدن به سرورش چند بار گوشی رو شیک کرد شاید حدوده 8 الی 10 بار شیک محکم کرد که تا 100 درصد پر بشه و به سرور متصل بشه . من زیاد برنامه نویسی آندروید سر در نمیارم من کلی تحقیق کردم و با برنامه apk multi took دیکامپل کردم برنامه مورد نظر رو  یه قسمتی تو پوشه res پیدا کردم به اسمه activity_shake_and_save ولی گویا بیشتر در زمینه محیط برنامه توضیح داده بود و چیزی به اسمه سنسور پیدا نکردم به نظرتون چی کار میشه کرد

ممنون

فایل به اسمه shake هم آپلود کردم براتون

http://s5.picofile.com/file/8173821968/activity_shake_and_save.rar.html

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

از این کد برای shake استفاده کنید

package com.example.pwplock;

import android.content.Context;

import android.hardware.SensorListener;

import android.hardware.SensorManager;

@SuppressWarnings("deprecation")

public class ShakeListener implements SensorListener {

    private static final int FORCE_THRESHOLD = 350;

    private static final int TIME_THRESHOLD = 100;

    private static final int SHAKE_TIMEOUT = 500;

    private static final int SHAKE_DURATION = 1000;

    private static final int SHAKE_COUNT = 3;

    private SensorManager mSensorMgr;

    private float mLastX = -1.0f, mLastY = -1.0f, mLastZ = -1.0f;

    private long mLastTime;

    private OnShakeListener mShakeListener;

    private Context mContext;

    private int mShakeCount = 0;

    private long mLastShake;

    private long mLastForce;

    public interface OnShakeListener {

        public void onShake();

    }

    public ShakeListener(Context context) {

        mContext = context;

        resume();

    }

    public void setOnShakeListener(OnShakeListener listener) {

        mShakeListener = listener;

    }

    public void resume() {

        mSensorMgr = (SensorManager) mContext

                .getSystemService(Context.SENSOR_SERVICE);

        if (mSensorMgr == null) {

            throw new UnsupportedOperationException("Sensors not supported");

        }

        boolean supported = mSensorMgr.registerListener(this,

                SensorManager.SENSOR_ACCELEROMETER,

                SensorManager.SENSOR_DELAY_GAME);

        if (!supported) {

            mSensorMgr.unregisterListener(this,

                    SensorManager.SENSOR_ACCELEROMETER);

            throw new UnsupportedOperationException(

                    "Accelerometer not supported");

        }

    }

    public void pause() {

        if (mSensorMgr != null) {

            mSensorMgr.unregisterListener(this,

                    SensorManager.SENSOR_ACCELEROMETER);

            mSensorMgr = null;

        }

    }

    public void onAccuracyChanged(int sensor, int accuracy) {

    }

    public void onSensorChanged(int sensor, float[] values) {

        if (sensor != SensorManager.SENSOR_ACCELEROMETER)

            return;

        long now = System.currentTimeMillis();

        if ((now - mLastForce) > SHAKE_TIMEOUT) {

            mShakeCount = 0;

        }

        if ((now - mLastTime) > TIME_THRESHOLD) {

            long diff = now - mLastTime;

            float speed = Math.abs(values[sensorManager.DATA_X]

                    + values[sensorManager.DATA_Y]

                    + values[sensorManager.DATA_Z] - mLastX - mLastY - mLastZ)

                    / diff * 10000;

            if (speed > FORCE_THRESHOLD) {

                if ((++mShakeCount >= SHAKE_COUNT)

                        && (now - mLastShake > SHAKE_DURATION)) {

                    mLastShake = now;

                    mShakeCount = 0;

                    if (mShakeListener != null) {

                        mShakeListener.onShake();

                    }

                }

                mLastForce = now;

            }

            mLastTime = now;

            mLastX = values[sensorManager.DATA_X];

            mLastY = values[sensorManager.DATA_Y];

            mLastZ = values[sensorManager.DATA_Z];

        }

    }

}

 

فراخوانی کلاس مورد نظر:

ShakeListener mShaker = new ShakeListener(this);

        mShaker.setOnShakeListener(new ShakeListener.OnShakeListener() {

            public void onShake() {

              //your code

            }

        });

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دوسته عزیز یه کمکم میکنی این کد رو کجا وارد کنم اون قسمت shake که آپلود کردم براتون تو پوشه res /layout بود که یه فایل به  اسمه activity_shake_and_save  توش بود الان من این کدهایی که گذاشتم رو تو اون قسمت بذارم ؟

برای فراخوانی کلاس مورد نظر که آخر نوشتی اونو کجا بزارم

شرمنده تو رو خدا این شیک گوشی خیلی رو اعصابمه کاره هر روزمه و کلی وقت گیر

ممنون میشم کمکم کنی خیلی آقایی

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

خسته نباشید

بنده اون کد های اولی رو ، توی یک کلاس جدا قرار دادم.

الان میخوام توی یک کلاس دیگه از قابلیت شیک استفاده کنم ،

ShakeListener mShaker = new ShakeListener(this);
       mShaker.setOnShakeListener(new ShakeListener.OnShakeListener() {
           public void onShake() {
			Toast.makeText(getApplicationContext(), "vWv",Toast.LENGTH_SHORT).show();

           }
       });

این کد هارو وارد کردم ، ولی خطا داره. حس میکنم این کد کامل نیست.

میشه راهنمایی کنید ؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

نه دوست عزیز، کد کامله و هیچ مشکلی نداره، من قبلا تستش کردم. تو مانیفست باید سرویس مورد نظر رو تعریف کنی. این کارو کردی؟

اگه این کارو نکردی باید به این صورت عمل کنی:

        

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اینم سورسش، براتون تو انجمن گذاشتم:

 

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون میشم :blush:

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوستان

شما میتونید یک پروژه کامل در مورد سنسور Accelerometer رو از لینک زیر دانلود کنید

accelerometer.png

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام عرض میکنم خدمت تمامی توسعه دهندگان اندروید

مارکتی برای توسعه دهندگان اندروید برای نخستین بار در ایران.

 

تبلیغ غیر مجاز...........

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری