User:Shrot111

From Doku Wiki
Jump to: navigation, search

تحدثنا حتى الآن عن الوصول إلى Google APIs ، والتي تستخدم الحسابات والمستخدمين المحددين بواسطة Google. إذا كانت لديك خدمتك الخاصة عبر الإنترنت ، فلن يكون لها حسابات Google أو مستخدمون ، فماذا تفعل؟ اتضح أنه من السهل نسبيًا تثبيت أنواع حسابات جديدة على جهاز المستخدم. يشرح هذا الدرس كيفية إنشاء نوع حساب مخصص يعمل بنفس الطريقة التي تعمل بها الحسابات المضمنة.

تنفيذ كود حسابك المخصص أول شيء ستحتاجه هو طريقة للحصول على بيانات الاعتماد من المستخدم. قد يكون هذا بسيطًا مثل مربع حوار يطلب اسمًا وكلمة مرور. أو قد يكون إجراءً أكثر غرابة مثل كلمة مرور لمرة واحدة أو مسح ضوئي. في كلتا الحالتين ، تقع على عاتقك مسؤولية تنفيذ الكود الذي:

يجمع بيانات الاعتماد من المستخدم يصادق بيانات الاعتماد مع الخادم يخزن بيانات الاعتماد على الجهاز عادةً ما يمكن التعامل مع كل هذه المتطلبات الثلاثة من خلال نشاط واحد. سنسمي هذا نشاط المصادقة.

نظرًا لأنهم بحاجة إلى التفاعل مع AccountManagerالنظام ، فإن أنشطة المصدق لها متطلبات معينة لا تتوفر في الأنشطة العادية. لتسهيل تصحيح الأمور ، يوفر إطار عمل Android فئة أساسية AccountAuthenticatorActivity، والتي يمكنك توسيعها لإنشاء المصادقة المخصصة الخاصة بك.

إن كيفية معالجة أول متطلبين لنشاط المصدق ، وجمع بيانات الاعتماد والمصادقة ، أمر متروك لك تمامًا. (إذا كانت هناك طريقة واحدة فقط للقيام بذلك ، فلن تكون هناك حاجة لأنواع الحسابات "المخصصة" ، بعد كل شيء.) المطلب الثالث له تنفيذ أساسي وبسيط إلى حد ما:

كن ذكيا بشأن الأمن! من المهم أن نفهم أن هذه AccountManagerليست خدمة تشفير أو سلسلة مفاتيح. يقوم بتخزين بيانات اعتماد الحساب بمجرد تمريرها ، بنص عادي . في معظم الأجهزة ، لا يعد هذا مصدر قلق خاص ، لأنه يخزنها في قاعدة بيانات لا يمكن الوصول إليها إلا من خلال الجذر. ولكن على جهاز ذي جذر ، ستكون بيانات الاعتماد قابلة للقراءة من قبل أي شخص لديه adbإمكانية الوصول إلى الجهاز.

مع وضع ذلك في الاعتبار ، يجب ألا تمرر كلمة المرور الفعلية للمستخدم إلى AccountManager.addAccountExplicitly(). بدلاً من ذلك ، يجب عليك تخزين رمز آمن مشفر يكون ذا فائدة محدودة للمهاجم. إذا كانت بيانات اعتماد المستخدم الخاصة بك تحمي شيئًا ذا قيمة ، فيجب أن تفكر مليًا في القيام بشيء مماثل.

تذكر: عندما يتعلق الأمر برمز الحماية ، اتبع قاعدة "Mythbusters": لا تجرب هذا في المنزل! استشر خبير أمن قبل تنفيذ أي كود حساب مخصص.

الآن بعد أن أصبحت إخلاء المسؤولية الأمنية بعيدة عن الطريق ، حان الوقت للعودة إلى العمل. لقد قمت بالفعل بتنفيذ جوهر رمز الحساب المخصص الخاص بك ؛ ما تبقى هو السباكة.

تمديد AbstractAccountAuthenticator لكي AccountManagerتعمل مع رمز حسابك المخصص ، تحتاج إلى فصل دراسي يقوم بتنفيذ الواجهات التي AccountManagerتتوقعها. هذه الفئة هي فئة الموثق .

أسهل طريقة لإنشاء فئة مصدق هي توسيع AbstractAccountAuthenticatorوتنفيذ أساليبها المجردة. إذا كنت قد عملت من خلال الدروس السابقة ، فيجب أن تبدو الأساليب المجردة AbstractAccountAuthenticatorمألوفة: فهي الجانب المقابل للطرق التي استدعتها في الدرس السابق للحصول على معلومات الحساب ورموز التفويض.

يتطلب تنفيذ فئة المصدق بشكل صحيح عددًا من الأجزاء المنفصلة من التعليمات البرمجية. أولاً ، AbstractAccountAuthenticatorلديه سبع طرق مجردة يجب تجاوزها. ثانيًا ، تحتاج إلى إضافة عامل تصفية الهدف إلى "android.accounts.AccountAuthenticator"بيان التطبيق الخاص بك (كما هو موضح في القسم التالي). أخيرًا ، يجب عليك توفير اثنين من موارد XML التي تحدد ، من بين أشياء أخرى ، اسم نوع الحساب المخصص الخاص بك والأيقونة التي سيعرضها النظام بجوار الحسابات من هذا النوع.

يمكنك العثور على دليل تفصيلي خطوة بخطوة لتنفيذ فئة المصادقة الناجحة وملفات XML في AbstractAccountAuthenticatorالوثائق.

إذا كان نشاط المصادقة الخاص بك يحتاج إلى أي معلمات تهيئة خاصة ، فيمكنك إرفاقها بالغرض باستخدام Intent.putExtra().

إنشاء خدمة المصدق الآن بعد أن أصبح لديك فصل دراسي للمصادقة ، فأنت بحاجة إلى مكان للعيش فيه. يجب أن يكون مصدقو الحساب متاحين لتطبيقات متعددة وأن يعملوا في الخلفية ، لذلك من الطبيعي أن يكونوا مطالبين بالتشغيل داخل ملف Service. سنسمي هذا خدمة المصدق.

يمكن أن تكون خدمة المصدق الخاصة بك بسيطة للغاية. كل ما عليك فعله هو إنشاء مثيل لفئة المصادقة الخاصة بك onCreate() والاتصال getIBinder() بها onBind().

وزع خدمتك انت انتهيت! يتعرف النظام الآن على نوع حسابك ، جنبًا إلى جنب مع جميع أنواع حسابات الأسماء الكبيرة مثل "Google" و "Corporate". يمكنك استخدام صفحة إعدادات الحسابات والمزامنة لإضافة حساب ، وستتمكن التطبيقات التي تطلب حسابات من نوعك المخصص من التعداد والمصادقة تمامًا كما تفعل مع أي نوع حساب آخر.

بالطبع ، كل هذا يفترض أن خدمة حسابك مثبتة بالفعل على الجهاز. إذا كان هناك تطبيق واحد فقط يمكنه الوصول إلى الخدمة ، فهذه ليست مشكلة كبيرة - فقط قم بتجميع الخدمة في التطبيق. ولكن إذا كنت تريد استخدام خدمة حسابك بواسطة أكثر من تطبيق ، فستصبح الأمور أكثر تعقيدًا. لا ترغب في تجميع الخدمة مع جميع تطبيقاتك ولديك نسخ متعددة منها تشغل مساحة على جهاز المستخدم الخاص بك.

يتمثل أحد الحلول في وضع الخدمة في ملف APK صغير واحد ذي أغراض خاصة. عندما يرغب أحد التطبيقات في استخدام نوع الحساب المخصص الخاص بك ، يمكنه التحقق من الجهاز لمعرفة ما إذا كانت خدمة الحساب المخصص متاحة أم لا. إذا لم يكن كذلك ، فيمكنه توجيه المستخدم إلى Google Play لتنزيل الخدمة. قد يبدو هذا قدرًا كبيرًا من المتاعب في البداية ، ولكن بالمقارنة مع بديل إعادة إدخال بيانات الاعتماد لكل تطبيق يستخدم حسابك المخصص ، فإنه سهل للغاية.

يقدم لكم البنك الوطني الباكستاني بالسعودية منصة شروط فتح حساب حفاظا على فائض أموالهم، تقوم بادخارها في البنوك بى افضل الخدمات.