اندرويد للمبتدئين 11-Permissions



عند تسطيبك لاي تطبيق علي جهازك فانه قبل التسطيب يعرض لك قائمة بالاشياء التي سيستخدمها مثل انه
سيستخدم الكاميرا او WIFI  او دليل الهاتف وانت كمستخدم تقبل باستخدامه لهذه الاشياء او لا

هذا هو الPermission  حيث انه يطلب منك تصريح لاستخدام هذه التطبيقات اثناء عمله اما اذا رفضت فهو لن يعمل علي الوجه الامثل مثل تطبيقFacebook يطلب السماح له باستخدام بيانات الهاتف وال WIFI ليقوم بالاتصال بالانترنت
فاذا رفضت هذا التصريح لن يعمل

وبكده هو بيحمي بياناتك ومصادرك لانه يتيح لك كمستخدم انك تقبل او ترفض هذه الPermissions
وتوضع الPermissions  في ملف Manifest بهذا الشكل
permissionوكلما احتجنا تصريح جديد وضعناه في الملف
<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"))
        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" >
    <uses-sdk
        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" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

بوضع هاتين الجملتين لن يستطيع  التطبيق B او اي تطبيق اخر بفتح التطبيق A الا اذا وضع هذا الpermession في ملف الManifest للتطبيق B او غيره
<uses-permission android:name="com.app.open" />
com.app.open
  هذه الجملة ليست ثابتة يمكنك وضع اي جملة مثلا اذا كان التطبيق يخص لعبه قتال يمكن ان تكون
com.fight وهكذا
Previous
Next Post »