English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يشرح هذا المقال مثالًا على كيفية استخدام صلاحية uses-permission في Android. نشارك هذا معكم لتكونوا مرجعًا، كما يلي:
عندما ننصب برنامج Android، يُظهر النظام رسالة حول الصلاحيات المطلوبة للبرنامج، مقارنة بالأنظمة الأخرى، تحتوي Android على العديد من الصلاحيات. عند تطوير البرامج، يجب علينا أيضًا إعلان الصلاحيات المطلوبة، مثل إذا كنا نريد أن يرسل البرنامج رسائل نصية، يجب علينا إعلان صلاحية إرسال الرسائل النصية للبرنامج، وإلا سيُظهر البرنامج رسالة خطأ عند تشغيله.
صلاحيات Android تُضبط في ملف AndroidManifest.xml. يحتوي ملف AndroidManifest على أربع علامات متعلقة بـ permission، وهي <permission>، <permission-group>، <permission-tree> و <uses-permission>. أما الأكثر شيوعًا هي <uses-permission>، عندما نحتاج إلى الحصول على صلاحية معينة، يجب علينا أن نعلن عن <uses-permission> في ملف manifest الخاص بنا.
<?xml version="1.0" encoding="utf-8"?> <manifest> <application> </application> <uses-permission /> <permission /> <permission-tree /> <permission-group /> ... </manifest>
<permission> و <uses-permission> تأثيرات مشابهة، ولكن هناك فرق بينهما، <uses-permission> هو صلاحية مسبقة التحديد من قبل android، <permission> هو صلاحية معينة من قبل المستخدم. <permission> يستخدم بشكل أقل، <permission-group> <permission-tree> هذه العلامات أقل شيوعًا، ببساطة <permission-group> هو إعلان عن علامة، يمثل العلامة مجموعة من permissions، بينما <permission-tree> هو إعلان عن namespace لمجموعة من permissions. سيتم شرح استخدام هذه العلامات الثلاثة في مقال لاحق.
<permission>定义方法如下:
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] />
الكود المذكور أعلاه يأتي من الوثائق الرسمية: http://developer.android.com/guide/topics/manifest/permission-element.html. propectionLevel هذا الخصوصية هو مطلوب الإعلان عنه، لإخبار النظام بأن التطبيق يتطلب إذن المستخدم، أو من يعتقدون أنهم يحصلون على إذن. permissionGroup هذا الخيار هو اختياري، ويستخدم مع <permission-group>. label, name و icon لوصف الصلاحية. سيتم تحليل استخدام <permission> بشكل مفصل لاحقاً.
<uses-permission> هو أكثر ما نستخدمه، وطرق تعريفه في الوثائق الرسمية كالتالي:
<uses-permission android:name="string" />
على سبيل المثال، تعريف صلاحيات الرسائل القصيرة والهاتف:
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.SEND_SMS"/>
إليك المعلومات المجمعة لـ <uses-permission>، لسهولة البحث عند الحاجة:
android.permission.ACCESS_CHECKIN_PROPERTIES
يُسمح بالقراءة والكتابة على جدول "properties" في قاعدة بيانات checkin، يمكن تعديل هذه القيم قبل التحميل (Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded)
android.permission.ACCESS_COARSE_LOCATION
يسمح للبرنامج بالوصول إلى CellID أو نقطة واي فاي للحصول على موقع غير دقيق (Allows an application to access coarse (e.g., Cell-ID, WiFi) location)
android.permission.ACCESS_FINE_LOCATION
يسمح للبرنامج بالوصول إلى موقع دقيق (مثل GPS) (Allows an application to access fine (e.g., GPS) location)
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
يسمح للبرنامج بالوصول إلى أوامر موفر المواقع الإضافية (Allows an application to access extra location provider commands)
android.permission.ACCESS_MOCK_LOCATION
يسمح للبرنامج بإنشاء موفر مواقع تمثيلية للاختبار (Allows an application to create mock location providers for testing)
android.permission.ACCESS_NETWORK_STATE
يسمح للبرنامج بالوصول إلى معلومات شبكات GSM (Allows applications to access information about networks)
android.permission.ACCESS_SURFACE_FLINGER
يسمح للبرنامج باستخدام خصائص SurfaceFlinger الأساسية (Allows an application to use SurfaceFlinger's low level features)
android.permission.ACCESS_WIFI_STATE
يسمح للبرنامج بالوصول إلى معلومات حالة شبكة الواي فاي (Allows applications to access information about Wi-Fi networks)
android.permission.ADD_SYSTEM_SERVICE
يسمح البرنامج بنشر خدمات مستوى النظام (Allows an application to publish system-level services).
android.permission.BATTERY_STATS
يُسمح لبرنامج تحديث إحصاءات بطارية الهاتف (Allows an application to update the collected battery statistics)
android.permission.BLUETOOTH
يُسمح لبرنامج الاتصال بأجهزة بلوتوث تم تشكيلها مسبقًا (Allows applications to connect to paired bluetooth devices)
android.permission.BLUETOOTH_ADMIN
يُسمح لبرنامج اكتشاف وتشكيل أجهزة بلوتوث (Allows applications to discover and pair bluetooth devices)
android.permission.BRICK
المطلوب من أجل إيقاف تشغيل الجهاز (مخاطرة عالية) (Required to be able to disable the device (very *erous!).)
android.permission.BROADCAST_PACKAGE_REMOVED
يُسمح لبرنامج ببث رسالة تذكير بعد إزالة حزمة تطبيق (Allows an application to broadcast a notification that an application
تم إزالة الحزمة)
android.permission.BROADCAST_STICKY
يُسمح لبرنامج ببث intents شائعة (Allows an application to broadcast sticky intents)
android.permission.CALL_PHONE
يُسمح لبرنامج بدء مكالمة هاتفية بدون مرور عبر واجهة المستخدم لمكالمة الهاتف لتحقق المستخدم من المكالمة المنفذة (Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed.)
android.permission.CALL_PRIVILEGED
يسمح لبرنامج بإجراء مكالمات على أي رقم هاتف، بما في ذلك الأرقام الطارئة، دون الحاجة إلى واجهة المستخدم لمكالمة الهاتف لتحديد المكالمة التي يتم إجراءها (Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed).
android.permission.CAMERA
يطلب الوصول إلى جهاز الكاميرا (Required to be able to access the camera device.)
android.permission.CHANGE_COMPONENT_ENABLED_STATE
يسمح لبرنامج بتغيير حالة تشغيل مكون التطبيق أو تعطيله (Allows an application to change whether an application component (other than its own) is enabled or not.)
android.permission.CHANGE_CONFIGURATION
يسمح لبرنامج بتغيير الإعدادات الحالية، مثل التوطين (Allows an application to modify the current configuration, such as locale.)
android.permission.CHANGE_NETWORK_STATE
يسمح للتطبيق بتغيير حالة الاتصال بالشبكة (Allows applications to change network connectivity state)
android.permission.CHANGE_WIFI_STATE
يسمح للتطبيق بتغيير حالة الاتصال بالواي فاي (Allows applications to change Wi-Fi connectivity state)
android.permission.CLEAR_APP_CACHE
يسمح لبرنامج بحذف السجلات المخزنة من جميع التطبيقات المثبتة في الجهاز (Allows an application to clear the caches of all installed applications on the device.)
android.permission.CLEAR_APP_USER_DATA
يسمح للتطبيق بإزالة إعدادات المستخدم (Allows an application to clear user data)
android.permission.CONTROL_LOCATION_UPDATES
يسمح بتمكين/تعطيل إشعارات تحديث الموقع من الراديو (Allows enabling/disabling location update notifications from the radio. )
android.permission.DELETE_CACHE_FILES
يسمح للتطبيق بحذف ملفات المخزنة (Allows an application to delete cache files)
android.permission.DELETE_PACKAGES
يسمح للتطبيق بحذف الحزم (Allows an application to delete packages)
android.permission.DEVICE_POWER
يسمح بالوصول إلى إدارة الطاقة الأساسية (Allowslow-level access to power management)
android.permission.DIAGNOSTIC
يسمح للتطبيق بقراءة وكتابة موارد التشخيص (Allows applications to RW to diagnostic resources. )
android.permission.DISABLE_KEYGUARD
يسمح للتطبيق بتعطيل حاجز الشاشة (Allows applications to disable the keyguard )
android.permission.DUMP
يسمح للتطبيق بإرجاع معلومات القيادة من خدمات النظام (Allows an application to retrieve state dump information from system services.)
android.permission.EXPAND_STATUS_BAR
يسمح للتطبيق بتوسيع أو انكمال شريط الحالة، يوضح موقع تطوير الأندرويد أنه يجب أن يكون تطبيقًا شبيهًا بتطبيق القفص في Windows Mobile (Allows an application to expand or collapse the status bar. )
android.permission.FACTORY_TEST
العمل كبرنامج اختبار للصناعة، يتم تشغيله كمستخدم root (Run as a manufacturer test application, running as the root user. )
android.permission.FLASHLIGHT
الوصول إلى الفلاش، يُشير موقع android.development إلى أن HTC Dream لا يحتوي على فلاش (Allows access to the flashlight )
android.permission.FORCE_BACK
يُسمح للبرنامج إجبار عملية التراجع على النشاط الأعلى (Allows an application to force a BACK operation on whatever is the top activity. )
android.permission.FOTA_UPDATE
لا يُفهم بعد ما هي الاستخدامات الخاصة بذلك، يقول موقع android.development أنّه قد يكون صلاحية مخصصة.
android.permission.GET_ACCOUNTS
الوصول إلى قائمة الحسابات في AccountsService (Allows access to the list of accounts in the Accounts Service)
android.permission.GET_PACKAGE_SIZE
يُسمح للبرنامج الحصول على المساحة المستخدمة من أي حزمة (Allows an application to find out the space used by any package. )
android.permission.GET_TASKS
يُسمح للبرنامج الحصول على معلومات حول المهام التي تعمل حاليًا أو مؤخرًا، وتمثيل مرآة للمهام، والأنشطة التي تعمل فيها، وما إلى ذلك (Allows an application to get information about the currently or recently running tasks: a thumbnail representation of the tasks, what activities are running init, etc.)
android.permission.HARDWARE_TEST
يُسمح بالوصول إلى الأجهزة (Allows access to hardware peripherals. )
android.permission.INJECT_EVENTS
يُسمح للبرنامج بجمع أحداث المستخدمين مثل الأزرار،اللمس،كرة التتبع وما إلى ذلك إلى تدفق الوقت،يُذكر موقع android development network أنه يعتبر تقنية hook (Allows an application to inject user events (keys, touch, trackball) into the event stream and deliver them to ANY window.)
android.permission.INSTALL_PACKAGES
يُسمح للبرنامج بتثبيت الحزم (Allows an application to install packages. )
android.permission.INTERNAL_SYSTEM_WINDOW
يُسمح للبرنامج بفتح نوافذ باستخدام واجهة المستخدم النظامية (Allows an application to open windows that are for use by parts of the system userinterface. )
android.permission.INTERNET
يُسمح للبرنامج بفتح منفذات الشبكة (Allows applications to open network sockets)
android.permission.MANAGE_APP_TOKENS
يُسمح للبرنامج بإدارة (إنشاء، إزالة، ترتيب z- order بتحريكه نحو المحور z) الرموز التطبيقية في مدير النوافذ (Allows an application to manage (create, destroy, Z-order) application tokens in the window manager. )
android.permission.MASTER_CLEAR
حتى الآن لا يوجد تفسير واضح،تحليل موقع android development network قد يكون حذف جميع البيانات،مثل format الصلب
android.permission.MODIFY_AUDIO_SETTINGS
يُمكّن التطبيق من تعديل إعدادات الصوت العالمية (يُمكّن التطبيق من تعديل إعدادات الصوت العالمية)
android.permission.MODIFY_PHONE_STATE
يُمكّن من تعديل حالة الهاتف، مثل تشغيل الطاقة، واجهة المستخدم، إلخ (يُمكّن من تعديل حالة الهاتف، مثل تشغيل الطاقة، واجهة المستخدم، إلخ)
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
يُمكّن من تثبيت وإزالة تثبيت أنظمة الملفات للخزينة القابلة للإزالة (يُمكّن من تثبيت وإزالة تثبيت أنظمة الملفات للخزينة القابلة للإزالة)
android.permission.PERSISTENT_ACTIVITY
يُمكّن التطبيق من جعل activities دائمًا (يُمكّن تطبيقًا من جعل activities دائمًا)
android.permission.PROCESS_OUTGOING_CALLS
يُمكّن التطبيق من مراقبة، تعديل أو إلغاء إتصالات الهاتف الصادرة (يُمكّن تطبيقًا من مراقبة، تعديل أو إلغاء إتصالات الهاتف الصادرة)
android.permission.READ_CALENDAR
يُمكّن التطبيق من قراءة بيانات تقويم المستخدم (يُمكّن تطبيقًا من قراءة بيانات تقويم المستخدم)
android.permission.READ_CONTACTS
يُمكّن التطبيق من قراءة بيانات جهات الاتصال للمستخدم (يُمكّن تطبيقًا من قراءة بيانات جهات الاتصال للمستخدم)
android.permission.READ_FRAME_BUFFER
يُمكّن التطبيق من إلتقاط صور الشاشة أو الحصول على الوصول إلى بيانات حافز الشاشة بشكل عام (يُمكّن تطبيقًا من إلتقاط صور الشاشة والحصول على الوصول إلى بيانات حافز الشاشة بشكل عام)
android.permission.READ_INPUT_STATE
يسمح للبرنامج باسترجاع حالة الأزرار والمعبرات الحالية (Allows an application to retrieve the current state of keys and switches. )
android.permission.READ_LOGS
يسمح للبرنامج قراءة ملفات سجلات النظام الأساسي (Allows an application to read the low-level system log files. )
android.permission.READ_OWNER_DATA
يسمح للبرنامج قراءة بيانات المالك (Allows an application to read the owner's data)
android.permission.READ_SMS
يسمح للبرنامج قراءة رسائل SMS (Allows an application to read SMS messages.)
android.permission.READ_SYNC_SETTINGS
يسمح للبرنامج قراءة إعدادات التزامن (Allows applications to read the sync settings)
android.permission.READ_SYNC_STATS
يسمح للبرنامج قراءة إحصائيات التزامن (Allows applications to read the sync stats)
android.permission.REBOOT
يحتاج إلى إعادة تشغيل الجهاز (Required to be able to reboot the device. )
android.permission.RECEIVE_BOOT_COMPLETED
يسمح لبرنامج استقبال إشارة ACTION_BOOT_COMPLETED بعد إكمال نظام التشغيل في بدء التشغيل (Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. )
android.permission.RECEIVE_MMS
يسمح لبرنامج مراقبة الرسائل القصيرة MMS المستلمة، وتسجيل أو تنفيذ معالجة (Allows an application to monitor incoming MMS messages, to record or perform processing on them. )
android.permission.RECEIVE_SMS
يسمح للبرنامج بمتابعة الاستلامات القادمة من الرسائل القصيرة، وتسجيل أو تنفيذ معالجة عليها (يُمكّن التطبيق من متابعة الاستلامات القادمة من الرسائل القصيرة، وتسجيل أو تنفيذ معالجة عليها.)
android.permission.RECEIVE_WAP_PUSH
يسمح للبرنامج بمتابعة الاستلامات القادمة من رسائل WAPPUSH (يُمكّن التطبيق من متابعة الاستلامات القادمة من رسائل WAPPUSH. )
android.permission.RECORD_AUDIO
يسمح للبرنامج بتسجيل الصوت (يُمكّن التطبيق بتسجيل الصوت)
android.permission.REORDER_TASKS
يسمح للبرنامج بتغيير ترتيب المهام في المحور العمودي (يُمكّن التطبيق من تغيير ترتيب المهام في المحور العمودي)
android.permission.RESTART_PACKAGES
يسمح للبرنامج بإعادة تشغيل تطبيقات أخرى (يُمكّن التطبيق من إعادة تشغيل تطبيقات أخرى)
android.permission.SEND_SMS
يسمح للبرنامج بإرسال رسائل SMS (يُمكّن التطبيق من إرسال رسائل SMS)
android.permission.SET_ACTIVITY_WATCHER
يسمح للبرنامج بمتابعة أو التحكم في كيفية بدء الأنشطة بشكل عام في النظام (يُمكّن التطبيق من متابعة أو التحكم في كيفية بدء الأنشطة بشكل عام في النظام.)
android.permission.SET_ALWAYS_FINISH
يسمح للبرنامج بتحكم في إنهاء الأنشطة فورًا عند وضعها في الخلفية (يُمكّن التطبيق من التحكم في إنهاء الأنشطة فورًا عند وضعها في الخلفية.)
android.permission.SET_ANIMATION_SCALE
تعديل عامل تدرج الرسوم المتحركة العالمي (تعديل عامل تدرج الرسوم المتحركة العالمي).
android.permission.SET_DEBUG_APP
تكوين التطبيق لغرض الت调试 (تكوين التطبيق للت调试.).
android.permission.SET_ORIENTATION
يسمح بالوصول إلى المستوى الأساسي لضبط توجيه الشاشة (الحقيقة هو التدوير).
android.permission.SET_PREFERRED_APPLICATIONS
يسمح للتطبيق بتعديل قائمة التطبيقات المفضلة باستخدام طرق PackageManager.addPackageToPreferred() و PackageManager.removePackageFromPreferred() (يسمح للتطبيق بتعديل قائمة التطبيقات المفضلة باستخدام طرق PackageManager.addPackageToPreferred() و PackageManager.removePackageFromPreferred().)
android.permission.SET_PROCESS_FOREGROUND
يسمح للتطبيق بتوجيه أي عملية تشغيل حالية إلى الخلفية (يسمح للتطبيق بتوجيه أي عملية تشغيل حالية إلى الخلفية.)
android.permission.SET_PROCESS_LIMIT
يسمح بتعيين عدد أكبر من العمليات التي يمكن تشغيلها (يسمح للتطبيق بتعيين أكبر عدد من عمليات التطبيق غير الضرورية التي يمكن تشغيلها. )
android.permission.SET_TIME_ZONE
يُسمح للبرامج بتعيين منطقة الوقت (Allows applications to set the system time zone)
android.permission.SET_WALLPAPER
يُسمح للبرامج بتعيين الورقية (Allows applications to set the wallpaper )
android.permission.SET_WALLPAPER_HINTS
يُسمح للبرامج بتعيين تلميحات الورقية (Allows applications to set the wallpaper hints)
android.permission.SIGNAL_PERSISTENT_PROCESSES
يُسمح للبرنامج بطلب إرسال إشارة إلى جميع العمليات المستمرة (Allow an application to request that a signal be sent to all persistent processes)
android.permission.STATUS_BAR
يُسمح للبرنامج بفتح، إغلاق أو تعطيل شريط الحالة وأيقوناته (Allows an application to open, close, or disable the status bar and its icons. )
android.permission.SUBSCRIBED_FEEDS_READ
يُسمح لبرنامج الوصول إلى محتوى RSS Feed المُشترك (Allows an application to allow access the subscribed feeds ContentProvider. )
android.permission.SUBSCRIBED_FEEDS_WRITE
يُحتفظ بالإعداد بشكل مؤقت بالنظام، يعتقد موقع android development أن الإصدارات المستقبلية ستضيف هذه الميزة.
android.permission.SYSTEM_ALERT_WINDOW
يُسمح لبرنامج فتح نافذة باستخدام النوع TYPE_SYSTEM_ALERT، وعرضها في أعلى جميع التطبيقات الأخرى (Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. )
android.permission.VIBRATE
يسمح بالوصول إلى جهاز الاهتزاز (Allows access to the vibrator)
android.permission.WAKE_LOCK
يسمح باستخدام WakeLocks من PowerManager للحفاظ على عملية من اختفاء الشاشة عند النوم (Allows using PowerManager WakeLocks to keep)
من النوم أو من إطفاء الشاشة)
android.permission.WRITE_APN_SETTINGS
يسمح للبرامج بكتابة إعدادات API (Allows applications to write the apnsettings)
android.permission.WRITE_CALENDAR
يسمح لبرنامج بكتابة بيانات التقويم الخاصة بالمستخدم而不 قراءتها (Allows an application to write (but not read) the user's calendar data. )
android.permission.WRITE_CONTACTS
يسمح لبرنامج بكتابة بيانات جهات الاتصال الخاصة بالمستخدم而不 قراءتها (Allows an application to write (but not read) the user's contacts data. )
android.permission.WRITE_GSERVICES
يسمح للبرنامج بتعديل خريطة خدمات جوجل (Allows an application to modify the Google service map. )
android.permission.WRITE_OWNER_DATA
يسمح لبرنامج بكتابة البيانات而不 قراءتها لصاحب البيانات (Allows an application to write (but not read) the owner's data.)
android.permission.WRITE_SETTINGS
يسمح للبرنامج بقراءة أو كتابة إعدادات النظام (Allows an application to read or write the system settings. )
android.permission.WRITE_SMS
يُسمح للبرنامج بكتابة الرسائل النصية (Allows an application to write SMS messages)
android.permission.WRITE_SYNC_SETTINGS
يُسمح للبرنامج بكتابة الإعدادات المتزامنة (Allows applications to write the sync settings)
النصيحة: يمكنك التحقق من خصائص وظائف ملف AndroidManifest.xml عبر الأدوات عبر الإنترنت في هذا الموقع:
ملخص وظائف ومهام حقوق AndroidManifest:
http://tools.jb51.net/table/AndroidManifest
يمكن للمشتركين المهتمين بمزيد من المعلومات المتعلقة بAndroid أن يتحققوا من موضوعات هذا الموقع: 'دليل البدء والترقية في تطوير Android'، 'قواعد التشخيص وإصلاح المشاكل الشائعة في Android'، 'قواعد تحسين الأداء للمتوسطات في Android'، 'قواعد استخدام العناصر الأساسية في Android'، 'قواعد استخدام العناصر النصية في Android'، 'قواعد استخدام التصميمات في Android'، و'قواعد استخدام العناصر المختلفة في Android'.
آمل أن يكون هذا المقال قد ساعد الجميع في تصميم برامج Android.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع ملكية حقوق الطبع والنشر لأصحابها، ويتم تقديم المحتوى من قبل المستخدمين عبر الإنترنت، ويشغل هذا الموقع حقوق الملكية، ولم يتم تعديل المحتوى بشكل يدوي، ولا يشغل هذا الموقع أي مسؤولية قانونية متعلقة بذلك. إذا كنت قد وجدت محتوى مشكوك فيه من حيث حقوق الطبع والنشر، فيرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (أثناء إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') للإبلاغ، وتقديم الدليل المتعلق، وسيقوم الموقع فورًا بإزالة المحتوى المشكوك فيه.