رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام

دوستان والا بنده یه برنامه کاربردی در زمینه خودم دارم که این برنامه چیزی که خیلی رو اعصابه باید برای وصل شدن به سرورش چند بار گوشی رو شیک کرد شاید حدوده 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  توش بود الان من این کدهایی که گذاشتم رو تو اون قسمت بذارم ؟

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

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

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 5 ماه بعد...

سلام

خسته نباشید

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

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

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

           }
       });

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

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

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

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

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

        

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 10 ماه بعد...
  • 1 سال بعد...

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

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

 

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

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط hami develop
      سلام خدمت دوستان عزیز.
      من یک اپلیکیشن اندروید درست کردم و از کلاس service ارث بری کردم و هر دقیقه یک بار یک وب سایت را چک میکند و در صورتی که اطلاعات جدیدی در این وب سایت وجود داشته باشد به من یک نوتیفیکیشن میدهد.
      آیا بهتر است که از کلاس Worker ارث بری کنم تا برنامه وظایفی را انجام دهد؟
      نکته: در واقع می‌خواهم برنامه برای مدت طولانی اجرا شود و هیچ گاه متوقف نشود.
      اگر کسی از دوستان تجربه کار با Worker را دارد لطفا بفرمایند که اختلاف
      Worker 
      و
      Service 
      دقیقا چی هست و برای برنامه ای که همیشه در بک گراند در حال اجرا است، کدامیک بهتر است؟
      سپاس بی کران.
    • توسط AliAmani
      سلام.وقت بخیر.من به یه ارور بر خوردم. دیباگر attach نمیشه.لطفا راهنماییم کنید.
      اندروید استودیو را حذف و دوباره نصب کردم.avd جدید ایجاد کردم.adb را kill و بعد start کردم.اما درست نشد.
      مشکل فقط در پروژه های اندروید است و در پروژه های فلاتر مشکلی نیست.
      debug.pdf
    • توسط 3245
      سلام
      من درحال اموزش اندروید هستم،
      برای این کار، ویدیوهای ساخت کتاب رو خریدم، اما چون اطلاعاتم خیلی کمه،درک مطالب توی این ویدئو سخته برام
      میخواستم اگرممکنه دوستان کلیپی پیشنهاد بدن که سبک تر باشه و بیشتر به مباحث پایه بپردازه، البته خیلی هم نخواد از صفر شروع کنه که خسته کننده میشه...
      طوری باشه پروژه محور باشه اما پروژه سبکی باشه.
       
      ممنون.
       
       
    • توسط Zeynab Tri
      سلام. دوستان بنده یک عدد تازه کار در برنامه نویسی اندروید هستم و نمیدونم این ارور رو چطور حل کنم. ممنون میشم اگر کسی میتونه من رو راهنمایی کنه.عکسش رو گذاشتم.

  • فایل

×
×
  • اضافه کردن...