কম্পিউটার

অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিকভাবে ইনকামিং কলের উত্তর কীভাবে দেবেন?


এই উদাহরণটি দেখায় কিভাবে অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিকভাবে ইনকামিং কলের উত্তর দিতে হয়।

ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷

ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।

 
 ধাপ 3 − src/MainActivity.java

-এ নিম্নলিখিত কোড যোগ করুন
প্যাকেজ com.app.sample; androidx.appcompat.app.AppCompatActivity আমদানি করুন; android.content.Context আমদানি করুন; android.content.Intent আমদানি করুন; android.os.Build; আমদানি করুন android.os.Bundle; পাবলিক ক্লাস মেইন অ্যাক্টিভিটি AppCompatActivity প্রসারিত করে { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void acceptCall() { প্রসঙ্গ প্রসঙ্গ =নাল; যদি (Build.VERSION.SDK_INT>=21) { উদ্দেশ্য answerCalintent =নতুন অভিপ্রায় (প্রসঙ্গ, AcceptCallActivity.class); answerCalintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); answerCalintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(উত্তরক্যালিন্টেন্ট); } অন্য { উদ্দেশ্য অভিপ্রায় =নতুন অভিপ্রায় (প্রসঙ্গ, AcceptCallActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(উদ্দেশ্য); } } }

পদক্ষেপ 4৷ − src/AcceptCallActivity.java

-এ নিম্নলিখিত কোড যোগ করুন
প্যাকেজ com.app.sample; android.app.Activity আমদানি করুন; android.app.KeyguardManager আমদানি করুন; android.content.BroadcastReceiver আমদানি করুন; android.content.Context আমদানি করুন; android.content.Intent; android.content আমদানি করুন৷ IntentFilter; android.media.AudioManager আমদানি করুন; android.os.Build আমদানি করুন; android.os.Bundle আমদানি করুন; android.telephony.TelephonyManager আমদানি করুন; android.view.KeyEvent আমদানি করুন; android.view.WindowManager; আমদানি java.io.IOEx;import java.util.logging.Logger;public class AcceptCallActivity কার্যকলাপ প্রসারিত করে { ব্যক্তিগত স্ট্যাটিক লগার লগার =Logger.getLogger(String.valueOf(AcceptCallActivity.class)); ব্যক্তিগত স্ট্যাটিক ফাইনাল স্ট্রিং MANUFACTURER_HTC ="HTC"; ব্যক্তিগত KeyguardManager keyguardManager; ব্যক্তিগত অডিও ম্যানেজার অডিও ম্যানেজার; ব্যক্তিগত CallStateReceiver callStateReceiver; @ওভাররাইড সুরক্ষিত শূন্যতা onCreate(বান্ডেল savedInstanceState) { super.onCreate(savedInstanceState); keyguardManager =(KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); audioManager =(AudioManager) getSystemService(Context.AUDIO_SERVICE); } @Override সুরক্ষিত শূন্যতা onResume() { super.onResume(); registerCallStateReceiver(); UpdateWindowFlags(); AcceptCall(); } @ওভাররাইড সুরক্ষিত শূন্যতা অনপজ() { super.onPause(); যদি (callStateReceiver!=null) { unregisterReceiver(callStateReceiver); callStateReceiver =null; } } ব্যক্তিগত অকার্যকর রেজিস্টারCallStateReceiver() { callStateReceiver =নতুন CallStateReceiver(); IntentFilter intentFilter =নতুন IntentFilter(); intentFilter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED); registerReceiver(callStateReceiver, intentFilter); } ব্যক্তিগত অকার্যকর আপডেটWindowFlags() { যদি (keyguardManager.inKeyguardRestrictedInputMode()) { getWindow().addFlags( WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_TURN.LayoutParams.FLAG_TURN.FLAG_TURN.Window_Params.Window_Params.WNLAG_TURN } অন্য { getWindow().clearFlags( WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); } } প্রাইভেট ভ্যাইড acceptCall() { বুলিয়ান broadcastConnected =MANUFACTURER_HTC.equalsIgnoreCase(Build.MANUFACTURER) &&!audioManager.isWiredHeadsetOn(); যদি (সম্প্রচার সংযুক্ত) { broadcastHeadsetConnected(false); } চেষ্টা করুন { চেষ্টা করুন { Runtime.getRuntime().exec("input keyevent " + Integer.toString(KeyEvent.KEYCODE_HEADSETHOOK)); } ধরা (IOException e) { String enforcedPerm ="android.permission.CALL_PRIVILEGED"; অভিপ্রায় btnDown =নতুন অভিপ্রায়(Intent.ACTION_MEDIA_BUTTON)।putExtra( Intent.EXTRA_KEY_EVENT, নতুন কী ইভেন্ট(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK)); অভিপ্রায় btnUp =নতুন অভিপ্রায়(Intent.ACTION_MEDIA_BUTTON)।putExtra( Intent.EXTRA_KEY_EVENT, নতুন কী ইভেন্ট(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); sendOrderedBroadcast(btnDown, enforcedPerm); sendOrderedBroadcast(btnUp, enforcedPerm); } } অবশেষে { if (broadcastConnected) { broadcastHeadsetConnected(false); } } } ব্যক্তিগত অকার্যকর সম্প্রচার হেডসেট সংযুক্ত (বুলিয়ান সংযুক্ত) { অভিপ্রায় i =নতুন অভিপ্রায়(ইন্টেন্ট.ACTION_HEADSET_PLUG); i.add Flags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); i.putExtra("স্টেট", সংযুক্ত? 1 :0); i.putExtra("নাম", "mysms"); চেষ্টা করুন { sendOrderedBroadcast(i, null); } ধরা (ব্যতিক্রম ই) { } } ব্যক্তিগত ক্লাস CallStateReceiver সম্প্রসারিত করে BroadcastReceiver { @Override public void onReceive(প্রসঙ্গ প্রসঙ্গ, উদ্দেশ্য অভিপ্রায়) { finish(); } } }

ধাপ 5 - নিম্নলিখিত কোডটি Manifests/AndroidManifest.xml

-এ যোগ করুন
 <অ্যাপ্লিকেশন android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" Android :theme="@style/AppTheme">       

আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালানোর জন্য, আপনার প্রকল্পের কার্যকলাপ ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে -

অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিকভাবে ইনকামিং কলের উত্তর কীভাবে দেবেন?


  1. কিভাবে প্রোগ্রাম্যাটিকভাবে অ্যান্ড্রয়েড ফোনের ফোন নম্বর পেতে হয়?

  2. অ্যান্ড্রয়েড অ্যাপে একটি খণ্ড থেকে একটি কার্যকলাপ পদ্ধতি কল কিভাবে?

  3. কিভাবে প্রোগ্রামিকভাবে অ্যাপ্লিকেশন প্রস্থান করবেন?

  4. অ্যান্ড্রয়েডে কীভাবে জাল ইনকামিং কল সেট করবেন