প্রোগ্রামিংয়ে ফোন কল কীভাবে করবেন?


123

আমি একটি ক্রিয়াকলাপ বান্ডেল দ্বারা কল নম্বর ক্রয় করছি

এবং তারপরে, এই জাতীয় ক্রিয়াকলাপে, আমার কাছে সেই নাম্বারে কল করার জন্য একটি বোতাম আছে, এটি কোড:

callButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(bundle.getString("mobilePhone")));
            }
        }); 

কিছু ভুল, কারণ আমি বোতাম টিপলে কিছুই হয় না ...

আমি কি ভুল করছি?

পিডি: আমি অ্যান্ড্রয়েড 1.5.০ সামঞ্জস্যপূর্ণ প্রকল্প ব্যবহার করছি ... সম্ভবত ফোন কলটি 1.5 এর সাথে বেমানান?


pls লগকাট o / p বা আপনার ত্রুটির বিশদ বিবরণ পেস্ট করুন
চিক্কা.আনদেব

উত্তর:


259

আপনি স্টার্টএটিভিটি কল করতে ভুলে গেছেন। এটিকে ঐটির মত দেখতে হবে:

Intent intent = new Intent(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
context.startActivity(intent);

নিজেই একটি অভিপ্রায় কেবল একটি জিনিস যা কিছু বর্ণনা করে something এটা কিছু করে না।

আপনার ম্যানিফেস্টে প্রাসঙ্গিক অনুমতি যুক্ত করতে ভুলবেন না:

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

হাই @ লাইয়ার ডিভাইসে ডুয়াল-সিম থাকলে আমি কীভাবে তা করতে পারি। কোনও নির্দিষ্ট সিমের মাধ্যমে কল করা কি সম্ভব?
দিনাশ

3
@Dinash: এই ইতিমধ্যে বললেন প্রশ্ন কটাক্ষপাত: stackoverflow.com/questions/13231962/call-from-second-sim
Lior

আমি একই কোড ব্যবহার করেছি তবে গ্যালাক্সি এস 7 প্রান্তে কাজ করছি না। এটি আমার কোড ইন্টেন্ট ইন্টেন্টল = নতুন নতুন ইন্টেন্ট (ইন্টেন্ট.এ্যাকশন_সিএলএল); স্ট্রিং ইউরি = "টেল:" + সংখ্যা.ট্রিম (); intentCall.setData (Uri.parse (কোনো URI)); if (ক্রিয়াকলাপম্পট। }
অ্যাঞ্জেলজানিয়ে

এই সিমুলেটরটি কী শারীরিক ডিভাইস ছাড়াই কল করতে ব্যবহৃত হতে পারে
ব্যবহারকারীর 753136

24

এটি আমার ফোনে চেষ্টা করেছেন এবং এটি পুরোপুরি কার্যকর হয়।

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:900..." ));
startActivity(intent);

ম্যানিফেস্ট ফাইলটিতে এই অনুমতিটি যুক্ত করুন।

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

1
সংখ্যাটি 1689, 3,2,1,1 এর মতো। আমি ইস্যুটি পাচ্ছি এটি কেবল ১89৮৯ হবে ... দয়া করে আপনার যদি এর কোনও সমাধান থাকে তবে আমাকে সহায়তা করুন।
তেরাইয়া ময়ূর

@ তেরাইয়া মায়ুর আপনি প্রথমে যে কোনও সংখ্যক অক্ষর মুছে ফেলতে পারেন। তাই আপনি যদি ফোন নম্বর আছে যেমন String number = "1689,,3,2,1,1নাnubmer = "tel:" + number.replaceAll("[^0-9]", "");
ওয়াক

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

13
 Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+198+","+1+","+1)); 
             startActivity(callIntent);

একাধিক অর্ডারযুক্ত কলের জন্য

এটি ডিটিএমএফ কলিং সিস্টেমগুলিতে ব্যবহৃত হয়। যদি কলটি তখন ড্রপ হয়, আপনার সংখ্যাগুলির মধ্যে আরও "," পাস করা উচিত।


দ্বিবেদী জি: সংখ্যাটি 1689, 3,2,1,1 এর মতো। আমি ইস্যুটি পাচ্ছি এটি কেবল ১89৮৯ হবে ... দয়া করে আপনার যদি এর কোনও সমাধান থাকে তবে আমাকে সহায়তা করুন।
তেরাইয়া ময়ূর

@ তেরাইমায়ুর, এটি আইভিআরএস কল সিস্টেমের উপর নির্ভর করে। আমার কলিং বিলুপ্তির সমর্থনের কারণে এটি আমার পক্ষে তাড়াতাড়ি সাড়া দেয়।
দ্বিবেদী জি

হ্যাঁ আপনি ঠিক বলেছেন আমি যথাযথ বৈধ আইভিআর নম্বর পেয়েছি এবং এটি দুর্দান্ত কাজ করে। ধন্যবাদ
তেরাইয়া ময়ূর

6

নির্বাচিত উত্তরে মার্শমেলো অনুমতি যাচাই করার দরকার নেই। এটি মার্শমালো 6.0 বা ততোধিক ডিভাইসে সরাসরি কাজ করবে না।

আমি জানি আমি অনেক দেরি করে ফেলেছি তবে এই প্রশ্নের বড় ভোট রয়েছে তাই আমি ভেবেছিলাম এটি ভবিষ্যতে অন্যদের সহায়তা করবে।

মার্শমেলো ডিভাইসে আমাদের কল করার জন্য রান টাইম অনুমতি নেওয়া দরকার ...

মার্শমেলো বা তার উপরেরগুলিতে কল করার উদাহরণ এখানে।

অ্যান্ড্রয়েড মার্শমেলো 6.০ বা তারও উপরে কল কিভাবে করবেন



2

এখানে আমি আপনাকে দেখাব যে আপনি কীভাবে আপনার ক্রিয়াকলাপ থেকে ফোন কল করতে পারেন। কল করতে আপনাকে আপনার কোডটিতে এই কোডটি লিখতে হবে।

try {
    Intent my_callIntent = new Intent(Intent.ACTION_CALL);
    my_callIntent.setData(Uri.parse("tel:"+phn_no));
    //here the word 'tel' is important for making a call...
    startActivity(my_callIntent);
} catch (ActivityNotFoundException e) {
    Toast.makeText(getApplicationContext(), "Error in your phone call"+e.getMessage(), Toast.LENGTH_LONG).show();
}

1
@ পূর্ববর্তী আমি এটি খুব স্পষ্টভাবে সংজ্ঞায়িত করেছি, একটি ইতিমধ্যে আমি এর মাধ্যমে পয়েন্ট অর্জন করেছি, যার অর্থ আমার উত্তর কিছু লোকের পক্ষে অন্যের চেয়ে ভাল।
পীর ফাহিম শাহ

2

এটির জন্য অনুমতি লাগবে না।

val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:+123456"))
startActivity(intent)

অথবা

val intent = Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", "+123456", null))
startActivity(intent)

তবে এটি আরও একটি কথোপকথন দেখায় (আপনি কেবল একবার বা সর্বদা ফোন কল করতে চান কিনা তা জিজ্ঞাসা করে)। সুতরাং ACTION_CALLঅনুমতি নিয়ে ব্যবহার করা ভাল হবে ( প্রত্যাহারের অনুমতিটি android.permission.CALL_PHONE দেখুন )।


0
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
   final Button button = (Button) findViewById(R.id.btn_call);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            String mobileNo = "123456789";
            String uri = "tel:" + mobileNo.trim();
            Intent intent = new Intent(Intent.ACTION_CALL);
            intent.setData(Uri.parse(uri));
            startActivity(intent);
        }
    });*
 }

0

যদি কেউ কোটলিনে খুঁজছেন

    val  uri = "tel:+800******"
    val call_customer_service = Intent(Intent.ACTION_CALL)
    call_customer_service.setData(Uri.parse(uri))
    startActivity(call_customer_service)

অন্যান্য সমাধানগুলির মতো এটিরও android.permission.CALL_PHONEঅনুমতি প্রয়োজন ।

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