يك اپلیکیشن Login براي صحت بخشيدن به اطلاعات شما براي ورود به برخي از اپلیکیشن هاي خاص است.همه ی ما صفحه Login  را در هنگام ورود به فيس بوك و تويتر و غيره ديده ایم .

اين مقاله در مورد چگونگي ساخت Login به صفحه اندروید و مديريت امنيت اپلیکیشن ، زماني كه ديگران براي ورود به محيط شخصی شما تلاش می كنند ، توضيح می دهد.ابتدا شما بايد دو TextView را برای نام كاربری و رمز ورود برای كاربر تعريف كنيد. رمز ورود TextView بايد inputType ( تعیین نوع ورودی)  داشته باشد تا به عنوان رمز ورود استفاده شود. توضيحات لازم در زير آمده است :

 

<EditText
   android:id = "@+id/editText2"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:inputType = "textPassword" />

<EditText
   android:id = "@+id/editText1"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
/>

 

دكمه اي همراه با یک متن برای login  شدن ، تعريف كنيد و آن را در قسمت ویژگی onClick قرار دهيد. سپس function یا تابع آن را در ویژگی  onClick  در فايل جاوا تعريف كنيد :

 

<Button
   android:id = "@+id/button1"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:onClick = "login"
   android:text = "@string/Login" 
/>

 

در فايل جاوا ، در متد onClick ، متن نام كاربری و رمز ورود در حال استفاده را ، با متد ()getText و ()toString بگيريد و آن را به تابع ()equals بفرستید .

 

EditText username = (EditText)findViewById(R.id.editText1);
EditText password = (EditText)findViewById(R.id.editText2);		

public void login(View view){
   if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){
   
   //correcct password
   }else{
   //wrong password
}

 

آخرين كاری كه بايد انجام دهيد اين است كه مكانيزم امنيتي تشکیل دهید كه از مقاصد ناخواسته و غیر قابل پیش بینی اجتناب شود.
برای اين منظور زمان آن را كاهش دهيد و وقتی كه زمان به 0 رسيد كليد login غير فعال مي شود.

 

int counter = 3;
counter--;

if(counter==0){
   //disble the button, close the application e.t.c
}

مثال

در اين جا يك مثال برای Login به صفحه اندروید وجود دارد كه اپلیکیشن پايه را مي سازد كه تنها يك بار فرصت ورود به آن وجود دارد.

براي آزمايش كردن اين مثال شما مي توانيد آن را بر روي دستگاه واقعي و يا يك امولاتور اجرا كنيد.

مرحله  توضیحات
1 از  Android studio برای اجرای اپلیکیشن تحت پکیج com.example.Login Screen.myapplication استفاده کنید .
2 اصلاح src/MainActivity.java file به منظور افزودن كد هاي لازم.
3 اصلاح the res/layout/activity_main به منظور افزودن تركيبات اكس ام ال به ترتيب
4 اصلاحthe res/values/string.xml به منظور افزودن تركيبات رديفي لازم
5 برنامه را اجرا كنيد و يك وسيله اندرويدي اجرايي را انتخاب كنيد سپس برنامه را در آن نصب كنيد و نتيجه را باز بيني كنيد

محتوای تغییر یافته ی فایل src/MainActivity.java :

 

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity  {
   Button b1,b2;
   EditText ed1,ed2;

   TextView tx1;
   int counter = 3;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      b1 = (Button)findViewById(R.id.button);
      ed1 = (EditText)findViewById(R.id.editText);
      ed2 = (EditText)findViewById(R.id.editText2);

      b2 = (Button)findViewById(R.id.button2);
      tx1 = (TextView)findViewById(R.id.textView3);
      tx1.setVisibility(View.GONE);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            if(ed1.getText().toString().equals("admin") &&
               ed2.getText().toString().equals("admin")) {
                  Toast.makeText(getApplicationContext(),
                     "Redirecting...",Toast.LENGTH_SHORT).show();
               }else{
                  Toast.makeText(getApplicationContext(), "Wrong 
                     Credentials",Toast.LENGTH_SHORT).show();

                  tx1.setVisibility(View.VISIBLE);
                  tx1.setBackgroundColor(Color.RED);
                  counter--;
                  tx1.setText(Integer.toString(counter));

                  if (counter == 0) {
                     b1.setEnabled(false);
                  }
               }
         }
      });

      b2.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            finish();
         }
      });
   }
}

 

محتوای تغییر یافته ی res/layout/activity_main.xml :

 

<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
   xmlns:tools = "http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height = "match_parent" android:paddingLeft= "@dimen/activity_horizontal_margin"
   android:paddingRight = "@dimen/activity_horizontal_margin"
   android:paddingTop = "@dimen/activity_vertical_margin"
   android:paddingBottom = "@dimen/activity_vertical_margin" tools:context = ".MainActivity">
   
   <TextView android:text = "Login" android:layout_width="wrap_content"
      android:layout_height = "wrap_content"
      android:id = "@+id/textview"
      android:textSize = "35dp"
      android:layout_alignParentTop = "true"
      android:layout_centerHorizontal = "true" />
      
   <TextView
      android:layout_width = "wrap_content"
      android:layout_height = "wrap_content"
      android:text = "Tutorials point"
      android:id = "@+id/textView"
      android:layout_below = "@+id/textview"
      android:layout_centerHorizontal = "true"
      android:textColor = "#ff7aff24"
      android:textSize = "35dp" />
      
   <EditText
      android:layout_width = "wrap_content"
      android:layout_height = "wrap_content"
      android:id = "@+id/editText"
      android:hint = "Enter Name"
      android:focusable = "true"
      android:textColorHighlight = "#ff7eff15"
      android:textColorHint = "#ffff25e6"
      android:layout_marginTop = "46dp"
      android:layout_below = "@+id/imageView"
      android:layout_alignParentLeft = "true"
      android:layout_alignParentStart = "true"
      android:layout_alignParentRight = "true"
      android:layout_alignParentEnd = "true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:inputType="textPassword"
      android:ems="10"
      android:id="@+id/editText2"
      android:layout_below="@+id/editText"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignRight="@+id/editText"
      android:layout_alignEnd="@+id/editText"
      android:textColorHint="#ffff299f"
      android:hint="Password" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Attempts Left:"
      android:id="@+id/textView2"
      android:layout_below="@+id/editText2"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:textSize="25dp" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="New Text"
      android:id="@+id/textView3"
      android:layout_alignTop="@+id/textView2"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignBottom="@+id/textView2"
      android:layout_toEndOf="@+id/textview"
      android:textSize="25dp"
      android:layout_toRightOf="@+id/textview" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="login"
      android:id="@+id/button"
      android:layout_alignParentBottom="true"
      android:layout_toLeftOf="@+id/textview"
      android:layout_toStartOf="@+id/textview" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Cancel"
      android:id="@+id/button2"
      android:layout_alignParentBottom="true"
      android:layout_toRightOf="@+id/textview"
      android:layout_toEndOf="@+id/textview" />

</RelativeLayout>

 

محتوای res/values/string.xml :

 

<resources>
   <string name="app_name">My Application</string>
</resources>

 

محتوای فایل AndroidManifest.xml :

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".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>

 

می خواهیم اپلیکیشن لاگین را اجرا کنیم . فرض مي كنیم كه شما AVD  تان را ساخته ايد. در هنگام نصب براي اجرای اپلیکیشن از طريق اندروید استودیو يكي از فايل هاي اکتیویتی پروژتان را باز كنيد و از نوار ابزار بر روي RunEclipse Run Icon كليد كنيد. اكليپس برنامه را رويAVD  شما نصب مي كند و آماده به كار مي شود. اگر همه چيز در نصب و اپلیکیشن شما درست پيش رفت ، پنجره زير نمايش داده خواهد شد :

Android Login Application Tutorial

هر چيزي كه مايليد در قسمت نام كاربري و رمز عبور وارد كنيد سپس كليد لاگين را فشار دهيد. كه آن ها اشتباه مي باشند. به عنوان مثال ادمين را در قسمت نام كاربر و نيمدا را در قسمت رمز عبور وارد كردم.

Android Login Application Tutorial

اگر اين كار را بار ديگر انجام دهيد خواهيد ديد كه به علت اشتباه بودن نام كاربري و رمز عبور كليد لاگين غير فعال خواهد شد.

سپس برنامه را دوباره باز کرده و این بار نام کاربری و رمز عبور درست را که admin و password می باشد در فیلدهای text مربوطه وارد کنید:

Android Login Application Tutorial

و اگر دکمه ی cancel را فشار دهید از اپلیکیشن خارج می شوید.