آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ارسال اطلاعات توسط سنسور، از سرویس به اکتیویتی

alfredo  10 سال پیش  10 سال پیش
+1 0

سلام

داخل کلاس G یک متغیر داریم به اسم txtDescription از جنس اینت، که یک عدد ساده هست.

یک سرویس درست کردیم که در بکگراند اجرا میشه و خالیه فعلا

چکار کنیم تا بتونم این متغیر رو لحظه به لحظه از دستورات داخل سرویس آپدیت کنیم؟

مثلا فکر کنید میخوایم از طریق سنسور پروکسیمیتی بگیم که هربار مقدار سنسور برابر با صفر شد، یک عدد به txtDescription اضافه کن.

و این دستور همینطوری در بکگراند فعال باشه.

با تشکر.

+1 0
این لینک را ببنید و کد ها را تست کنید اگر جواب داد در سرویس بزارین و مقدار را با شرط اضافه کنید لینک http://stackoverflow.com/questions/22953671/how-to-controlandroid-proximity-sensor (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
alfredo  10 سال پیش
+1 0

دوستان من کماکان درگیر این موضوع هستم. این کد رو برای MyService پیدا کردم ولی دوتا ارور داره که نمیتونم استفاده کنم. نظرتون چیه ؟ 

 package alfredo.uzumaki.app;

import android.app.Service;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.IBinder;
import android.widget.Toast;


public class MyService extends Service implements SensorEventListener {

    Sensor        proxSensor;
    SensorManager sm;


    @Override
    public void onCreate() {//onCreat shouldn't be used for sensor u should use onStartCommand
        Toast.makeText(this, "Service Created", Toast.LENGTH_SHORT).show();
    }


    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onSensorChanged(SensorEvent event) {
        // TODO Auto-generated method stub
        //here u should use the following code otherwise your sensor will be crazy
        if (event.values[0] == 0) {
            Toast.makeText(this, "Sensor Working", Toast.LENGTH_SHORT).show();

            Intent panel = new Intent(this, Testnumber1000Activity.class);

            startActivity(panel);
        }
    }


    @Override
    public void onDestroy() {//here u should unregister sensor
        Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();
        sm.unregisterListener(this);
    }


    @Override
    //here u should register sensor and write onStartCommand not onStart
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
        sm = (SensorManager) getSystemService(SENSOR_SERVICE);
        proxSensor = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
        sm.registerListener(this, proxSensor, SensorManager.SENSOR_DELAY_NORMAL);

        //here u should make your service foreground so it will keep working even if app closed

         NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                Intent bIntent = new Intent(MyService.this, Testnumber1000Activity.class);
                PendingIntent pbIntent = PendingIntent.getActivity(MyService.this, 0, bIntent, 0);
                NotificationCompat.Builder bBuilder =        <==== این خط اون کلمه اولش ارور میده که میگه لایبراریش موجود نیست 
                        new NotificationCompat.Builder(this)
                                .setSmallIcon(R.drawable.ic_launcher)
                                .setContentTitle("Title")
                                .setContentText("Subtitle")
                                .setAutoCancel(true)
                                .setOngoing(true)
                                .setContentIntent(pbIntent);
                barNotif = bBuilder.build();   <------------- barNotif cannot be resolved to a variable این هم ارور این خط
                this.startForeground(1, barNotif);
        //then you should return sticky
        return Service.START_STICKY;
    }


    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }
}
+1 0
عکس یا متن خطا را هم بزارین (10 سال پیش)
0 0
اون لایبراری جاوا رو دانلود کردم ولی هرکاری کردم نتونستم اضافه کنم به برنامه، روش درستش رو بلد نبودم :( (10 سال پیش)
0 0
احمد جان داخل خود کُد نوشتم متن خطاها رو. یکیش که میگه کتابخانش موجود نیست، که بلد نبودم چطوری اضافه کنم، آموزشش هم توی اینترنت بود ولی باز هم موفق نشدم. اون یکی که پایین تره نوشته barNotif cannot be resolved to a variable (10 سال پیش)
+1 0
برای اضافه کردن کتاب خونه ها آموزش استاد بخش اسلایدینگ منیو را ببین (10 سال پیش)
0 0
فورمت فایل من جاوا هست، از روش استاد جواب نمیده. (10 سال پیش)
+1 0
استاد جاوا را هم که به اندروید اضافه کرده (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .