رفيق هادي مبارك هادي مشعيل نشر 24 نوفمبر 2021 أرسل تقرير نشر 24 نوفمبر 2021 هل يمكن ان اجعل برنامجي (بلغة الجافا للاندرويد) يتحسس او يشعر بتشغيل برنامج آخر. اي انني اريد برنامجي يقوم بتنفيذ مهمه في الخفاء عند تشغيل تطبيق محدد. 1 اقتباس
0 شرف الدين حفني نشر 24 نوفمبر 2021 أرسل تقرير نشر 24 نوفمبر 2021 يقوم ال ActivityManager بتوفير دالة تقوم بالإفصاح عن التطبيقات التي تعمل في الهاتف , الدالة هي getRunningAppProcesses وﻻ تأخذ تلك أي معاملات وتقوم بإرجاع list تحتوي بداخلها على العمليات التي تعمل في الهاتف على هيئة الصنف RunningAppProcessesInfo ويمكنك تنفيذ المطلوب عبر الشفرة التالية ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); ومن ثم يمكنك وضع الشفرة السابقة في حلقة تكرارية غير متناهية while(true){ ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); } والتحقق من إسم العملية while(true){ ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); for (int i = 0; i < runningAppProcessInfo.size(); i++) { if(runningAppProcessInfo.get(i).processName.equals("اسم التطبيق")) { // قم بتنفيذ عملية ما } } اقتباس
0 رفيق هادي مبارك هادي مشعيل نشر 24 نوفمبر 2021 الكاتب أرسل تقرير نشر 24 نوفمبر 2021 بتاريخ On 11/24/2021 at 09:14 قال شرف الدين2: يقوم ال ActivityManager بتوفير دالة تقوم بالإفصاح عن التطبيقات التي تعمل في الهاتف , الدالة هي getRunningAppProcesses وﻻ تأخذ تلك أي معاملات وتقوم بإرجاع list تحتوي بداخلها على العمليات التي تعمل في الهاتف على هيئة الصنف RunningAppProcessesInfo ويمكنك تنفيذ المطلوب عبر الشفرة التالية ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); ومن ثم يمكنك وضع الشفرة السابقة في حلقة تكرارية غير متناهية while(true){ ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); } والتحقق من إسم العملية while(true){ ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); for (int i = 0; i < runningAppProcessInfo.size(); i++) { if(runningAppProcessInfo.get(i).processName.equals("اسم التطبيق")) { // قم بتنفيذ عملية ما } } قمت بتجربة هذا الكود ولكن: 1. هذا الكود لا يعمل الا عندما اقوم بتشغيل البرنامج الذي يحتوي على الكود ، انا اريد أن اقوم بتثبيته فقط ثم هو يقوم بالعمل عندما يتم تشغيل البرنامج المحدد 2. عندما قمت بتنفيذ الكود (وبدل الاختبار جعلته يعرض اسماء التطبيقات التي تعمل) ولكن لم يعرض لي الا اسم برنامجي الذي يحوي هذا الكود . طبعا بعد ان قمت بعمل دوارة منتهيه بدل while التي وضعتها كغير منتهيه مثلا جعلتها تدور عشر مرات ولكن كل ما تم عرضه هو فقط اسم برنامجي مع العلم انه كان يوجد عدة تطبيقات تعمل في الخلفية مشغل موسيقى وفيديو وعدة تطبيقات ولكن لم يعرضها يا اخي بالمختصر اريد ان تطبيق يقوم بحذف ملفات الفيديو التي بتم عرضها في الشاشة الرئيسية لتطبيق SHAREit . قمت بعمل التطبيق وجعلته يعمل في الخفاء حيث عملت Alarm Manager يستدعي دالة الحذف في كل دقيقة وتم العمل بنجاح ، ولكن هذة الطريقة تستهلك البطارية ، فبدلا من عمل التطبيق دائما اريده فقط ان يعمل عندما يكون تطبيق SHAREit نشط. اقتباس
0 رفيق هادي مبارك هادي مشعيل نشر 6 ديسمبر 2021 الكاتب أرسل تقرير نشر 6 ديسمبر 2021 (معدل) المشكلة انه لا يمكن تنفيذ هذه العمليه(اي الحصول على التطبيقات النشطه حاليا) من اندرويد لوليب (Android L) والنسخ التاليه بغرض الامان. عندما جربت التطبيق الذي عملته بنفس الكود الذي تفظلت به على نسخ قديمه من اندرويد تم بنحاح. على العموم مشكور اخي وحزاك الله خيرا تم التعديل في 6 ديسمبر 2021 بواسطة رفيق هادي مبارك هادي مشعيل اقتباس
السؤال
رفيق هادي مبارك هادي مشعيل
هل يمكن ان اجعل برنامجي (بلغة الجافا للاندرويد) يتحسس او يشعر بتشغيل برنامج آخر.
اي انني اريد برنامجي يقوم بتنفيذ مهمه في الخفاء عند تشغيل تطبيق محدد.
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.