عند تسطيبك لاي تطبيق علي جهازك فانه قبل التسطيب يعرض لك قائمة بالاشياء التي سيستخدمها مثل انه
سيستخدم الكاميرا او WIFI او دليل الهاتف وانت كمستخدم تقبل باستخدامه لهذه الاشياء او لا
هذا هو الPermission حيث انه يطلب منك تصريح لاستخدام هذه التطبيقات اثناء عمله اما اذا رفضت فهو لن يعمل علي الوجه الامثل مثل تطبيقFacebook يطلب السماح له باستخدام بيانات الهاتف وال WIFI ليقوم بالاتصال بالانترنت
فاذا رفضت هذا التصريح لن يعمل
وبكده هو بيحمي بياناتك ومصادرك لانه يتيح لك كمستخدم انك تقبل او ترفض هذه الPermissions
وتوضع الPermissions في ملف Manifest بهذا الشكل
<uses-permission android:name="android.permission.CALL_PHONE"/>لاستخدام المكالمات
<uses-permission android:name="android.permission.INTERNET"/>لاستخدام الانترنت
وهكذا كلما احتجنا Permission وضعناه ولكن يجب الا نضع Permission لا نستخدمها حتي لا تجعل المستخدم يشعر بالملل في كل مره يفتح التطبيق
وهناك اشياء تحتاج الي permission مثل الكاميرا والبيانات الخاصه بالهاتف
وهناك اخري لا تحتاج مثل استخدام الbrowser يمكننا فتحه بالIntent دون الحاجه الي وضع permission
Intent start = new Intent(Intent.ACTION_VIEW)
start.setData(Uri.parse("http://www.google.com"))
start.setData(Uri.parse("http://www.google.com"))
startActivity(start)
ويمكننا ايضا وضع permission للتطبيق حتي لا يستطيع ان يفتحه تطبيق اخر الا اذا كان يوجد به هذا الpermission
ولنفترض ان لدينا تطبيقين A,B
A هو التطبيق الخاص بنا و B هو التطبيق الاخر الذي يريد فتح التطبيقA
داخل ملف Manifest الخاص بتطبيقA هنعرف permission خاص بالتطبيق بهذا الشكل
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gedo.tictacyoy"
android:versionCode="1"
android:versionName="1.0" >
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gedo.tictacyoy"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<permission android:name="com.app.open" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:permission="com.app.open"
android:theme="@style/AppTheme" >
<activity
android:name="com.gedo.tictacyoy.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:permission="com.app.open"
android:theme="@style/AppTheme" >
<activity
android:name="com.gedo.tictacyoy.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest></intent-filter>
</activity>
</application>
بوضع
هاتين الجملتين لن يستطيع التطبيق B او اي تطبيق اخر بفتح التطبيق A الا
اذا وضع هذا الpermession في ملف الManifest للتطبيق B او غيره
<uses-permission android:name="com.app.open" />
com.app.open
هذه الجملة ليست ثابتة يمكنك وضع اي جملة مثلا اذا كان التطبيق يخص لعبه قتال يمكن ان تكون
com.fight وهكذا
EmoticonEmoticon