بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
آگاه شدن از باز شدن پنل اس ام اس در گوشی
با سلام و احترام
دوستان گرامی میخوام هنگامیکه کاربر پنل اس ام اس گوشی شو که باز کرد من متوجه بشم(قبل از ارسال اس ام اس) قصدم خرابکاری یا ... نیست. کسی راهکاری داره؟
با تشکر از همه
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 برای باز شدن انتخاب شده است که باید با پکیج مربوط به اس ام اس جایگذین بشود
درباره ساخت سرویس در سوالات قبل پاسخ داده شده است
با سپاس فراوان
این موردی که فرمودید آیا با فرض نصب بر روی گوشی کاربر باطری گوشی رو تحت تاثیر قرار نمیده؟ نسبت به زمانی که از اینتنت استفاده بشه؟ چون از تایمر استفاده میکنه و در تمام طول روشن بودن گوشی این سرویس هم فعاله(اگه درست گفته باشم) البته مورد دیگه اینکه برخی از گوشی ها مثلا اچ تی سی احتمالا کامپوننت com.android.dialer اونا فرق داره. من برای پنل اس ام اس تست کردم فرق داشت(اچ تی سی با سامسونگ)
برای گوشی های دیگه مثلا هواوی یا ... چطور یعنی باید برنامه رو روی همه نصب کنم تا ببینم جواب میده یا نه؟ بنظرم نصب روی تمام اونا امکان ناپذیر باشه
از پاسخ شما بسیار سپاسگزارم. (4 سال پیش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .