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

آگاه شدن از باز شدن پنل اس ام اس در گوشی

reza1234  4 سال پیش  4 سال پیش
0 0

با سلام و احترام

دوستان گرامی میخوام هنگامیکه کاربر پنل اس ام اس گوشی شو که باز کرد من متوجه بشم(قبل از ارسال اس ام اس) قصدم خرابکاری یا ... نیست. کسی راهکاری داره؟ 

با تشکر از همه

0 0
لینک (4 سال پیش)
0 0
ممنون بابت وقتی که گذاشتید ولی کار ساز نیست باید یه برودکست رسیوری باشه که به باز شدن برنامه ای حساس باشه چطوری؟ نمیدونم... (4 سال پیش)
0 0
معذرت از تاخیر در جواب دادن (دیر سر زدن به انجمن ) ... خب همین کد رو در برودکست یا سرویس قرار بدین مثل راهنمایی که دوستمون در پایین انجام دادن .. با یه سرچ کوچیک خودتون زودتر به نتیجه میرسیدین ... مثال => لینک (4 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
namdar79  4 سال پیش
0 0

شما باید یک سرویس ایجاد کندی و متد onStartCommand را به صورت زیر تغییر دهید

@Override
public int onStartCommand(Intent intent, int flags, int startId){
    private static final String TAG = "com.myapp.Service"; // Replace this with your actual class' name
    Timer timer  =  new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        boolean isDialerAppLaunched = false, isDialerAppClosed = false;
        int dialerAppLaunches = 0;
        @Override
        public void run() {
            ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
            List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();

            for ( ActivityManager.RunningAppProcessInfo appProcess: runningAppProcessInfo ) {
                Log.d(appProcess.processName.toString(),"is running");
                if (appProcess.processName.equals("com.android.dialer")) {//پکیج مربوط به اس ام اس جایگذین شود
if ( appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND){ if (!isDialerAppLaunched){ isDialerAppLaunched = true; Log.d(TAG, "Dialer app has been launched"); } else if (isDialerAppClosed){ phonelaunches++; isDialerAppClosed = false; Log.d("Dialer app has been launched " + String.valueOf(phonelaunches) + "times."); } } else { isDialerAppClosed = true; Log.d(str,"Dialer app has been closed."); } } } } },2000,3000); return START_STICKY; }

در این مثال اپلیکیشن com.android.dialer برای باز شدن انتخاب شده است که باید با پکیج مربوط به اس ام اس جایگذین بشود

درباره ساخت سرویس در سوالات قبل پاسخ داده شده است

0 0
با سپاس فراوان این موردی که فرمودید آیا با فرض نصب بر روی گوشی کاربر باطری گوشی رو تحت تاثیر قرار نمیده؟ نسبت به زمانی که از اینتنت استفاده بشه؟ چون از تایمر استفاده میکنه و در تمام طول روشن بودن گوشی این سرویس هم فعاله(اگه درست گفته باشم) البته مورد دیگه اینکه برخی از گوشی ها مثلا اچ تی سی احتمالا کامپوننت com.android.dialer اونا فرق داره. من برای پنل اس ام اس تست کردم فرق داشت(اچ تی سی با سامسونگ) برای گوشی های دیگه مثلا هواوی یا ... چطور یعنی باید برنامه رو روی همه نصب کنم تا ببینم جواب میده یا نه؟ بنظرم نصب روی تمام اونا امکان ناپذیر باشه از پاسخ شما بسیار سپاسگزارم. (4 سال پیش)
0 0
بنظرم تعیین کرده که توی بازه های 2 یا 3 دقیقه هر بار یکبار نگاه کنه. اگه اینکارو انجام نداده از طریق Thread میتونید PostDelayed تعریف کنید و در هر بازه ای که دلتون میخواد بهش بگید به باتری سر بزنه (4 سال پیش)
+1 0
مسلما از باتری استفاده خواهد شد اما قابل چشم پوشی است. برای گوشی های متفاوت می شه با برند اونا رو تفکیک کرد(برای اموزش سوال جدید بنویسید). این کد هر سه ثانیه دو ثانیه اجرا می شود (4 سال پیش)
0 0
سپاس فراوان (4 سال پیش)

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