tejariapp-new-logotejariapp-new-logotejariapp-new-logotejariapp-new-logo
  • صفحه اصلی
  • پروژه ها
    • پروژه طراحی سایت
    • پروژه های اندروید
    • پروژه های تحت ویندوز
    • UI & UX
    • ربات تلگرام
  • سفارش پروژه
    • انجام پروژه اندروید (Android)
    • طراحی و ساخت اپلیکیشن موبایل
    • انجام پروژه طراحی سایت با php
    • انجام پروژه طراحی سایت با Asp.net
    • انجام پروژه سی شارپ
    • فرم سفارش پروژه
  • مدرسه ی تجاری اپ
    • طراحی سایت
    • اندروید
    • سی شارپ
    • آموزش پایگاه داده
    • برنامه های کاربردی
  • لینک های مفید
    • پرداخت آنلاین
    • درباره تجاری اپ
    • تماس با ما
استخدام برنامه نویس متلب
سفارش پروژه
✕
            هیچ نتیجه ای یافت نشدمشاهده همه نتایج

            سورس کد دریافت پیام تاییدیه به صورت خودکار در اندروید

            • صفحه نخست
            • مدرسه ی تجاری اپ آموزش اندروید
            • سورس کد دریافت پیام تاییدیه به صورت خودکار در اندروید
            telegrambotlogo
            سورس کد ربات تلگرام با سی شارپ
            27 آبان 1396
            پروژه اتصال به برد arduino با استفاده از پورت سریال با سی شارپ
            پروژه اتصال به برد arduino با استفاده از پورت سریال در سی شارپ
            7 بهمن 1396
            منتشر شده توسط مهندس داودی
            آموزش دریافت خودکار sms در اندروید

            آموزش دریافت خودکار sms در اندروید

            آموزش دریافت خودکار sms در اندروید ، تا به حال در اپلیکیشن های مختلفی شاهد زمانی بودید که باید در اپ ثبت نام کنید و این عمل ثبت نام قطعا با روشی از احراز هویت همراه ست.

            در ادامه یکی از محبوب ترین روش ها که کار را برای کاربر بسیار راحت میکند را با هم مرور میکنیم.

            برای دریافت سور کد هم میتوانید به کانال تلگرام ما مراجعه فرمایید

            سورس کد دریافت پیام تاییدیه به صورت خودکار در اندروید

            آموزش دریافت خودکار sms در اندروید ، این روش ممکن است ارسال ایمیل , ارسال sms و یا تماس با شما باشد که در اکثر مواقع یک کد برای شما ارسال میشود

            که باید آنرا به اپ بدهید تا بتواند هویت شما را تایید کند.

            ارسال کد به شماره موبایل راحت ترین و بی دردسر ترین روش احراز هویت است

            که البته میتوان این روش را بسیار ساده تر برای کاربر ارائه داد

            بدین صورت که  دیگر نیاز نباشد پس از دریافت پیام به صندوق دریافتی پیام های خود رفته و کد را کپی کرده و به اپ بدهد

            بلکه خود اپ پس از دریافت پیام , ارسال کننده پیام را چک کند و درصورت مطابقت , متن پیام را بردارد و وارد کند

            در این روش کاربر عملا لازم نیست کاری بجز وارد کردن شماره موبایل درست را انجام دهد.

            اما این روش مستلزم دسترسی اپلیکیشن به پیام ها یا sms های کاربر است که در نسخه های پیشین اندروید ۶ این مجوز ها تنها در manifest قرار میگرفت

            اما در نسخه های بعدی اندروید ۶ این مجوز ها به صورت runtime از کاربر گرفته میشود چون جزو dangerous permission هستند.

            در ادامه ما سورس کد ارسال یک پیام فیک و دریافت متن پیام به صورت خودکار توسط اپ را آموزش خواهیم داد.

            و برای دریافت سورس کد هم میتوانید به کانال تلگرام ما مراجعه فرمایید

            ابتدا یک پروژه ساده ایجاد کنید.

            ما در این پروژه نیاز به هیچگونه UI نداریم چون تنها هدف خواندن خودکار متن پیام دریافتی است.

            ما نیز تنها یک TextView در فایل xml  خود قرار دادیم

            <?xml version="1.0" encoding="utf-8"?>
            <android.support.constraint.ConstraintLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context="com.tejariapp.messagereceive.MainActivity">
            
            <TextView
            android:id="@+id/code"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/monaco"
            android:text="Code"
            android:textColor="?attr/colorAccent"
            android:textSize="30sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
            
            </android.support.constraint.ConstraintLayout>
            
            
            در این پروژه ما تنها سه بخش داریم
            • کلاسی که درقالب broadcast receiver زمانی که smsی دریافت شد اجرا میشود
            • اینترفیسی که رابطی بین broadcast receiver و اکتیویتی اصلی ماست و پیغام را از برودکست به اکتیویتی منتقل میکند.
            • و یک اکتیویتی اصلی که تمامی رخداد ها ازسمت برودکست را به ما نمایش دهد.

            اینترفیس را به صورت زیر با عنوان Sms Listener  ایجادمیکنیم

            package com.tejariapp.messagereceive;
            
            /**
             *
             * Created by MDN on 09/12/2017.
             *
             */
            
            public interface SmsListener {
                void onMessageReceived(String messageText);
            }
            
            

            سپس کلاس SmsReceiver را به صورت زیر ایجاد میکنیم

            package com.tejariapp.messagereceive;
            
            import android.content.BroadcastReceiver;
            import android.content.Context;
            import android.content.Intent;
            import android.os.Bundle;
            import android.telephony.SmsMessage;
            
            /**
            * Created by Marjan on 09/12/2017.
            * Own WebSite is Tejariapp.com
            */
            
            public class SmsReceiver extends BroadcastReceiver {
            
            private static SmsListener mListener;
            
            @Override
            public void onReceive(Context context, Intent intent) {
            Bundle data = intent.getExtras();
            
            Object[] pdus = (Object[]) data.get("pdus");
            
            for(int i=0;i<pdus.length;i++){
            SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
            
            String sender = smsMessage.getDisplayOriginatingAddress();
            //You must check here if the sender is
            // your provider and not another one with same text.
            
            String messageBody = smsMessage.getMessageBody();
            
            //Pass on the text to our listener.
            mListener.onMessageReceived(messageBody);
            }
            
            }
            
            public static void bindListener(SmsListener listener) {
            mListener = listener;
            }
            }
            

            پارامتر intent دریافتی در واقع شامل شی PDU یا  (Protocol Data Unit)

            که یک پروتکل برای انتقال پیام های SMS در مخابرات است و  ما آرایه ای از این پیام ها را دریافت می کنیم

            که به وسیله سیستم به گیرنده ما ارسال می شود.

            حال با استفاده از متد createFromPdu() یک شی SmsMessage ایجاد میکنیم

            تا بتوانیم از طریق این شی به ارسال کننده و متن پیام درسترسی پیدا کنیم.

            همانطور که در  کامنت هم گفته شده پس از دریافت ارسال کننده پیام با استفاده از متد

            smsMessage.getDisplayOriginatingAddress() 

            میتوان آن را با ارسال کننده مدنظر خودمان مقایسه کرد و درصورتی که مطابقت داشت مقدار پیام را با اینترفیس به اکتیویتی ارسال کرد .

            اما در این پروژه ما محدودیتی برای پیام ها درنظر نگرفته ایم و هرپیامی که دریافت شود متن آنرا به اکتیویتی

            با استفاده از متد onMessageReceive(messageBody) ارسال خواهیم کرد.

             

            **اما نکته مهم این است که این کلاس را به عنوان service به manifest اضافه کنیم

             

             <receiver android:name="com.tejariapp.messagereceive.SmsReceiver">
             <intent-filter>
             <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
             </intent-filter>
             </receiver>
            
            

            **همچنین مجوز های دسترسی به sms هارا نیز در manifest قرار میدهیم

            <uses-permission android:name="android.permission.SEND_SMS"/>
            <uses-permission android:name="android.permission.READ_SMS"/>
            <uses-permission android:name="android.permission.RECEIVE_SMS" />
            

            حال تنها  کافی است پیام را در اکتیویتی اصلی دریافت کنیم و نمایش دهیم

            و البته مجوز runtime  هم برای دریافت و ارسال sms ایجاد کرده ایم

            
            package com.tejariapp.messagereceive;
            
            import android.Manifest;
            import android.content.pm.PackageManager;
            import android.support.v4.app.ActivityCompat;
            import android.support.v4.content.ContextCompat;
            import android.support.v7.app.AppCompatActivity;
            import android.os.Bundle;
            import android.telephony.SmsManager;
            import android.util.Log;
            import android.widget.TextView;
            
            import java.util.Random;
            
            public class MainActivity extends AppCompatActivity {
            
                private static final int PERMISSION_REQUEST_CODE = 1;
            
                TextView mCodeView;
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
            
                    mCodeView=findViewById(R.id.code);
            
                    SmsReceiver.bindListener(new SmsListener() {
                        @Override
                        public void onMessageReceived(String messageText) {
                            Log.e("Text",messageText);
                            mCodeView.setText(messageText);
                        }
                    });
            
                    requestPermission();
            
                    sendFakeSms();
            
                }
            
                //send fake sms to emulator
                private void sendFakeSms(){
                    Random rand = new Random();
                    int  n = rand.nextInt(50) + 1;
                    SmsManager sms= SmsManager.getDefault();
            
                    sms.sendTextMessage("5554",null,
                            String.valueOf(n),null,null);
            
                    Log.e("MESSAGE BODY",String.valueOf(n));
                }
            
            
                //runtime permission
                private void requestPermission(){
                        ActivityCompat.requestPermissions(MainActivity.this,new String[]{
                                Manifest.permission.SEND_SMS},PERMISSION_REQUEST_CODE);
                }
            
                private boolean checkPermission(){
                    int result = ContextCompat.checkSelfPermission(MainActivity.this,
                            Manifest.permission.ACCESS_FINE_LOCATION);
                    if (result == PackageManager.PERMISSION_GRANTED){
            
                        return true;
            
                    } else {
                        return false;
                    }
                }
            
            }
            

            حال میتوان برنامه را روی شبیه ساز جرا کرد و خوا هیم دید هنگام اجرا یک sms که حاوی یک عدد تصادفی است به شبیه ساز ارسال

            و همچنین مقدار در textView نیز قرار میگیرد.

            اشتراک گذاری

            پست های مرتبط

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            30 بهمن 1400

            دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            30 بهمن 1400

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            توابع در زبان برنامه نویسی دارت (Dart)

            توابع در زبان برنامه نویسی دارت (Dart)

            27 بهمن 1400

            توابع در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب

            1 Comment

            1. Farhad گفت:
              24 دی 1396 در 12:16

              سلام
              خط ۶۲ به جای :
              Manifest.permission.ACCESS_FINE_LOCATION
              باید می نوشتین:
              Manifest.permission.SEND_SMS
              ممنون از آموزش عالی و کاملتون.

              پاسخ

            دیدگاهتان را بنویسید لغو پاسخ

            نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

            ساخت اپلیکیشن های موبایل

            • ساخت اپلیکیشن فروشگاهی
            • ساخت اپلیکشن ابزاری و خدماتی
            • ساخت اپلیکیشن آموزشی
            • و هزاران موضوع دیگر

             
            کلیک کنید

            آخرین دیدگاه ها

            • 9 اسفند 1401

              مهری اصغری نظر در پیاده سازی اولین پروژه با فلاتر Flutter

            • 26 آبان 1401

              سجاد نظر در پروژه مدیریت سیستم مدرسه با سی شارپ و sql server

            • 7 خرداد 1401

              داودی نظر در آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6

            تجاری اپ در شبکه های اجتماعی

            لوگوی تایید پرداخت آنلاین

            2015-2022 © تمامي حقوق مادي و معنوي اين وب سايت نزد تجاری اپ محفوظ بوده و هر گونه کپي برداري از مطالب پيگرد قانوني به همراه دارد! | طراح سایت : ProgRun
            سفارش پروژه
                      هیچ نتیجه ای یافت نشدمشاهده همه نتایج