Persian Software Engineers – Telegram
Persian Software Engineers
1.9K subscribers
353 photos
14 videos
84 files
303 links
تجربیات شخصی یک مهندس نرم افزار در آلمان‌.
کانال یوتیوب:
https://www.youtube.com/@Dev_Germany
ادمین کانال :
@mohamad_germany
Download Telegram
فقط جهت یادآوری تگ ها میگم که الان من این TextView را هم به بالای صفحم هم به سمت راستش align کردم.
از طرفی با دادن margin کمی فاصله دادم به آن با گوشه صفحه
خب حالا باید به همین ترتیب زیر جایی که اسم طرف قرار هست باشد مثلا یک دکمه بگذارم که پیامک ارسال کند و یک دکمه هم بگذارم زنگ بزند به فرد.
بیایم یک Button بگذاریم برای ارسال. خب من یک دکمه میگذارم
<Button android:layout_width="60dp"
android:layout_height="60dp"
android:layout_below="@+id/textView"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:id="@+id/btnSms"

android:background="@android:drawable/sym_action_email"/>
همه تگ ها را میشناسید جز آخری! حتما برای شما سوال شده که این چه چیزی هست.... drawable که عکس نذاشتیم پس چی هست این؟
دوستان اندروید خودش یک سری آیکون آماده دارد که میتوانید استفاده کنید. برای اینکه لیستش را راحت ببینید برید داخل بخش design و سپس background این دکمه را بیارید.
خب اینجا میتوانید کلی آیکونهای آماده را ببینیید و در برنامتان اگر خواستید استفاده کنید. مسلما خودتان میتوانید ایکونهای بهتر اضافه کنید اما برای آموزش لازم دیدم اینهارا هم بدانید
در نهایت چنین چیزی داریم:
حالا بریم در Activity تا ببینیم با زدن این دکمه پیامک بفرستیم
پس متد onClick را میسازم.
Button btnS = (Button) findViewById(R.id.btnSms);
btnS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

}
});
خب برای ارسال sms از کلاسی به نام smsManager استفاده میکنیم. اول کد زیر را ببینید:
SmsManager smsM = SmsManager.getDefault();
خب SmsManager یک کلاس هست خودش یک نمونه ای به نام smsM ازش آن دارم الان. که برابر قرارش دادم با متدی به نام getDefault که داخل کلاس SmsManager هست و خروجیش هم از نوع کلاس SmsManager هست!
اینهارو تنها با گرفتن دکمه ctrl و بردن موس روی اسم این کلاس و تابع میتوانید متوجه شید.
حالا برای ارسال اس ام اس هم از تابعی از این کلاس استفاده میکنم به نام sendTextMessage
smsM.sendTextMessage("09111111111",null,"salam",null,null);
خب به همین راحتی. ورودی اول شماره تلفن هست میتوانید الان شماره کسی را بگذارید و تست کنید کار میکند اپ یا نه. ورودی سوم متن پیام هست.
بقیه را فعلا null گذاشتم... null یعنی هیچی. دومین ورودی همان service center address است رای پیامک. اگر null بگذارید از همان حالت پیشفرضش استفاده میکند. مورد چهارم و پنجم هم به ترتیب برای الارم دادن موقع ارسال اس ام اس و همچنین موقع deliver شدنش هستن.
فقط یک کاری باقی هست... ما داریم از قابلیت ارسال sms در دستگاه کاربر استفاده میکنیم و باید اجازه اش را بگیریم!
پس برید داخل manifest و بزنید:
البته باید در صفحه یک جایی بگذاریم کاربر متن پیامکش را تایپ کند مثلا. که حالا انجام خواهیم داد این را هم در آینده
خب حالا که تا اینجا آمدیم... بیاید زنگ زدن را هم یاد بگیرید!
من دوباره در layout ام یک دکمه میسازم برای زنگ زدن:
<Button android:layout_width="60dp"
android:layout_height="60dp"
android:layout_below="@+id/textView"
android:layout_toLeftOf="@id/btnSms"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:id="@+id/btnCall"
android:background="@android:drawable/sym_call_outgoing"/>
خب بریم در همان Activity که داشتیم... برای این دکمه یک onClick بسازید.
برای تماس تلقنی گرفتن از Intent استفاده میکنیم. گفتم Intent یک سری درخواستهای ما از سیستم عامل را شامل میشود. یا به عبارت دیگر مثل یک سری پیام هستن بین اجزای سیستم. تماس تلفنی هم همینطور هست. طبق زیر:
((Button) findViewById(R.id.btnCall)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:09111111111"));
startActivity(intent);
}
});
اول از همه خود اصل onClick را ببینید.... اندفعه یک مدل جدید تعریف کردمش! دوستان این مدل هم میتوانید از دکمه یا کلا هر کلاسی استفاده کنید! ما همیشه یک نمونه ای میگیریم یک اسمی به آن میدهیم...
اینطوری درواقع وقتی که میخواهیم یک کلاسی را فقط یک بار استفاده کنیم بعد بگذاریمش بره اینکار را میکنیم.
خب در ادامه Intent را اینطوری تعریف کردیم... همانطور که میبینید با intent ای که برای رفتن از یک اکتیویتی به اکتیویتی دیگر بود فرق دارد. و در نهایت هم start کردیمش
یادمان نرود که باز با قابلیت گوشی کاربر ماها کار داریم و باید اجازه اش را بگیریم:
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>