كيف يمكن اكتشاف التطبيق غير القابل للتثبيت؟

StackOverflow https://stackoverflow.com//questions/12660365

  •  11-12-2019
  •  | 
  •  

سؤال

سأقوم بإلغاء تثبيت أحد التطبيقات عندما ينقر المستخدم على زر.بهذا الكود:

Uri packageURI = Uri.parse("package:"
        + pkNames[position]);
Intent uninstallIntent = new Intent(
Intent.ACTION_DELETE, packageURI);
context.startActivity(uninstallIntent);

لكن بعض التطبيقات لا يمكن إلغاء تثبيتها.مثل الإعداد أو الموسيقى أو ...عندما أقوم بإلغاء تثبيت هذه التطبيقات أرى:إلغاء التثبيت غير ناجح.

أحصل على الطرود الخاصة بي بهذا الرمز:

        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        packages = pm.queryIntentActivities(mainIntent, 0);

كيف يمكنني اكتشاف أن التطبيق غير قابل للتثبيت أم لا؟

هل كانت مفيدة؟

المحلول

يجب عليك التحقق مما إذا كان التطبيق الذي تحاول إلغاء تثبيته هو "نظام" من خلال النظر فيه ApplicationInfo.flags.تطبيق النظام لديها ApplicationInfo.FLAG_SYSTEM مجموعة بت.هنا قطعة صغيرة من التعليمات البرمجية:

boolean isSystem(ApplicationInfo info) {
   return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}

يفحص وثائق لفئة ApplicationInfo إلى غير ذلك من الأعلام المفيدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top