আমি ফোন নম্বরটি প্রদর্শিত সঙ্গে ডায়ালারটি কীভাবে খুলতে পারি?


193

আমাকে ফোন নম্বরে কল করার দরকার নেই, আমার কাছে ইতিমধ্যে প্রদর্শিত ফোন নম্বরটি দিয়ে ডায়ালারটি খোলার দরকার। Intentএটি অর্জনে আমার কী ব্যবহার করা উচিত?

উত্তর:


531

এটি অর্জনের দুটি উপায়।

1) ব্যবহারকারীর মিথস্ক্রিয়া ছাড়াই কোডের মাধ্যমে ডায়ালার শুরু করা দরকার।

তোমার দরকার Action_Dial,

নীচের কোড ব্যবহার করুন এটি নির্দিষ্ট নম্বর সহ ডায়ালার খুলবে

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent); 

'টেলিফোন' উপসর্গটি আবশ্যক , অন্য যেটি নিম্নলিখিত ব্যতিক্রম নিক্ষেপ করা হবে: java.lang.IllegalStateException: ক্রিয়াকলাপের পদ্ধতিটি কার্যকর করতে পারেনি।

অ্যাকশন_ডায়ালের কোনও অনুমতি প্রয়োজন হয় না।

আপনি যদি ব্যবহারকারীর মিথস্ক্রিয়া ছাড়াই কলটি সরাসরি শুরু করতে চান তবে আপনি ক্রিয়াটি ব্যবহার করতে পারেন Intent.ACTION_CALL। এই ক্ষেত্রে, আপনাকে অবশ্যই আপনার AndroidManLive.xML এ নিম্নলিখিত অনুমতিটি যুক্ত করতে হবে:

<uses-permission android:name="android.permission.CALL_PHONE" />

২) ফোন_ নাম্বার স্ট্রিংয়ে ক্লিক করতে এবং কলটি শুরু করতে ব্যবহারকারীর প্রয়োজন।

android:autoLink="phone" 

নীচের সম্পত্তি সহ আপনার টেক্সটভিউ ব্যবহার করা উচিত।

অ্যান্ড্রয়েড: অটোলিঙ্ক = "ফোন" অ্যান্ড্রয়েড: লিঙ্কস ক্লিকযোগ্য = "সত্য" একটি পাঠ্য দেখার সম্পত্তি

আপনাকে এইভাবে অভিপ্রায় ব্যবহার বা অনুমতি পাওয়ার দরকার নেই।


9
যে মহান হয় এবং এটি দ্বারা Intent.ACTION_CALL চেয়ে পৃথক এটি অবিলম্বে কল না
Amt87

ACTION_DIAL এর কি অনুমতি প্রয়োজন হয়, বা কেবল ACCESS_CALL করে?
মার্ক প্লানো-লেসেই

1
এই কাজ থেকে ফোন নম্বর সহ ডেনমার্ক পাশাপাশি :) আপনি প্রয়োজন হবে না নম্বরের আগে +45 যোগ করতে। এটি কেবলমাত্র ফোন নম্বরটি বিশ্লেষণ করে কাজ করে
ymerdrengene

1
নতুন অভিপ্রায় ডায়ালার খোলার পরে আইভ ব্যাক বোতামে সমস্যা হয়েছে আমি কেবলমাত্র 3 টি ব্যাক বোতাম টিপে আমার অ্যাপ্লিকেশনটিতে ফিরে আসতে পারি (এটি আমাকে ডায়ালারের বেশ কয়েকটি স্ক্রিন দেখায় যা আমি খুলি নি - ডায়ালার নিজেই, নতুন পরিচিতি স্ক্রিন তৈরি করে, পছন্দসই)। কেউ কি কেবল 1 টি ব্যাক বোতাম টিপে অ্যাপে ফিরে যেতে জানেন?
কাশলো

2
2012 ... শুভ পুরানো দিনগুলি। এটি 2018 সালে রাজনৈতিকভাবে সঠিক, বড় সংস্থাগুলি ব্যবহারকারী ডেটা বিক্রি করে এবং কেবলমাত্র এসএমএস এবং ফোন কল সমর্থন না করার জন্য আমাদের অ্যাপ্লিকেশনগুলিকে অ্যান্ড্রয়েড আমলাতন্ত্রের সাথে ডিল করতে হবে।
জোশ

52

উত্তরে দেরি হয়ে গেছে, তবে আপনার যদি TextViewফোন নম্বরটি দেখানো হচ্ছে এমন কিছু থাকে তবে আপনার অভিপ্রায়গুলি মোকাবেলা করার দরকার নেই, আপনি কেবল এক্সএমএল বৈশিষ্ট্যটি ব্যবহার করতে পারেন android:autoLink="phone"এবং ওএস স্বয়ংক্রিয়ভাবে একটি ACTION_DIALউদ্দীপনা শুরু করবে ।


খুব দ্রুত পদ্ধতির!
তাসলিম ওসেনি

7

ঠিক আছে, এটি এই প্রশ্নের চূড়ান্ত উত্তর হতে চলেছে। আপনি যদি কোটলিনে এটি করতে চান তবে এখানে একটি মাত্র নমুনা ।

val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:<number>")
startActivity(intent)

ভেবেছিল এটি কারও সাহায্য করতে পারে।


2

উপরে উল্লিখিত @ashishduh হিসাবে, ব্যবহার android:autoLink="phoneকরাও একটি ভাল সমাধান। তবে এই বিকল্পটি একটি অপূর্ণতা নিয়ে আসে, এটি সমস্ত ফোন নম্বর দৈর্ঘ্যের সাথে কাজ করে না। উদাহরণস্বরূপ, ১১ নম্বর সংখ্যার একটি ফোন নম্বর এই বিকল্পটির সাথে কাজ করবে না। সমাধানটি হ'ল দেশের কোড সহ আপনার ফোন নম্বরগুলি উপসর্গ করা।

উদাহরণ:

08034448845 কাজ করবে না

কিন্তু +2348034448845হবে


1
<TextView
 android:id="@+id/phoneNumber"
 android:autoLink="phone"
 android:linksClickable="true"
 android:text="+91 22 2222 2222"
 />

আপনি ডায়ালারে সরাসরি এডিটেক্সট লেবেল নির্ধারিত নম্বরটি এটি খুলতে পারেন।


1

ম্যানিফেস্টে অনুমতি যুক্ত করুন:

<uses-permission android:name="android.permission.CALL_PHONE" />

বোতাম বা কোনও উইজেটের উদাহরণ তৈরি করুন: btnCall

btnCall.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent callIntent = new Intent(Intent.ACTION_DIAL);
        callIntent.setData(Uri.parse("tel: +98990*******");
        startActivity(callIntent);

    }
});

এই উত্তরটি সঠিক তবে এই উত্তরটি প্রশ্নের সাথে মেলে না।
চাঁদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.