Tuesday, March 29, 2011

Call Control in Android

This tutorial is for those who want to control Phone Call in Android OS. Programmatic approach to Accept or Reject call without user intervention.
Kindly note, this approach uses Java Reflection to call methods of an internal class of Android Telephony Framework and might not work with all versions of Android OS. The core concept has been explained in this open code
1st thing 1st, Give the permission...
You need to define 3 User Permissions to handle call related functionality- (due to limitation of Blogger XML Tag marking has been replaced with “[“ and “]”)
[uses-permission android:name="android.permission.READ_PHONE_STATE"/]
[uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/] (For answerRingingCall() method)
[uses-permission android:name="android.permission.CALL_PHONE"/] (For endCall() method)
Define a Receiver...
Create a Receiver which accepts broadcasts with intent action android.intent.action.PHONE_STATE, define following in the Manifest,
 [receiver android:name=".PhoneCall"]
        [intent-filter]
            [action android:name="android.intent.action.PHONE_STATE"/]  
        [/intent-filter]
[/receiver]


Handle Broadcast inside your Receiver...
Override onReceive() method and using Java Reflection try to get the Instance of one of hidden class of Android Telephony Framework- com.android.internal.telephony.ITelephony
ITelephony defines a set of useful methods to control the Call state, which are hidden from general Android API.
private void getTeleService() {
        TelephonyManager tm = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        try {
            // Java reflection to gain access to TelephonyManager's
            // ITelephony getter
            Log.v(TAG, "Get getTeleService...");
            Class c = Class.forName(tm.getClass().getName());
            Method m = c.getDeclaredMethod("getITelephony");
            m.setAccessible(true);
            com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm);
        } catch (Exception e) {
            e.printStackTrace();
            Log.e(TAG,
                    "FATAL ERROR: could not connect to telephony subsystem");
            Log.e(TAG, "Exception object: " + e);
        }
}
Now, you can use telephonyService (which is an instance of com.android.internal.telephony.ITelephony) to "Accept"/"Reject" call and many other operations.
// Accept Call
telephonyService.answerRingingCall();
// Reject Call
telephonyService.endCall();


Sample Flow for Call Barring Application
1.     Define a set of numbers to be blocked-
String[] blockedNumbers = {" +919811284018 ", " +919811284012 "};
2.     Read incoming phone number
String incommingNumber;
@Override
public void onReceive(Context context, Intent intent) {
Bundle b = intent.getExtras();
incommingNumber = b.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
// Additional Step
// Check whether this number matches with your defined Block List
// If yes, Reject the Call
}
3.     Reject this Call
telephonyService.endCall();
Hope it helps! You can find the APK here...



Update: 

To mute an ongoing call, you can use com.android.internal.telephony.ITelephony.setMute(boolean ). You need to make sure the Call State is CALL_STATE_OFFHOOK

e.g.

continuing above code base-

if(tm.getCallState() == TelephonyManager.CALL_STATE_OFFHOOK){

  // mute the call

  telephonyService.setMute(true);

}





Kindly note: I couldn't test properly the above code. Please let me know if the Mute functionality works.




56
comments:






Anonymous
said...
Hi there, How to mute an incoming call by clicking a mute button which i placed on screen when i get an incoming call? How to do it programatically? Please, if you can, write on your blog. Thanks, Mark


Prasanta
said...
Mark, i'll definitely give a try and let you know. -Prasanta




Anonymous
said...
Hi there, How to do outgoing call barring in android programatically? Please, if you can, write on your blog. Thanks, David




Anonymous
said...
Hi, With which version of OS have you tested the solution ? Anyone can please post any results ? Thanks, Karlos


Prasanta
said...
Hi Karlos, this sample is tested with Android 2.1. Are you facing problem ? Thanks, Prasanta


Derek
said...
Good stuff, I've been looking for info on how to do this through reflection. Have you played around with placing a call on hold?




Jaison
said...
Prasanta, am in error on that line. com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm); The Andriod not find the class ITelephony This class does not exist in the SDK 2.1!


Prasanta
said...
Jaison, you need to have an internal framework JAR file to run this- framework_intermediates-classes-full-debug.jar This JAR you will get when you do complete build of Android OS.


Sai Srinivas
said...
prasanta.., Can u tell me how to get jar u have specified to access , can u please help me ? com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm);


Prasanta
said...
You can get the JAR from here-FW_JAR You need to use this as Eclipse User Library.


Sai Srinivas
said...
hi Prasanta , I copied ITelephony.aidl from google open source , and i h got how to reject and accept calls . Thank u much for ur input . I need one more help i.e; can u please tell me how to send mms directly from code , i mean with no further user input. Thank u


wangpeng
said...
i cannot understand,i am beginer,could you give me this example thank you




Anonymous
said...
Hi, I having the same issue. Where did you put the file "ITelephony.aidl" ? how do i use the .jar file in eclipse ? When i go to Project/Properties/Libraries - I can see under android.jar/access rules: Forbidden: com/android/internal/** any idea ? Thanks,


Prasanta
said...
Hi, if you are using the attached JAR, you need to include that as User Library in Eclipse- Your Project Folder->Build Path->Add Libraraies...->User Library Hope it helps. -Prasanta




Anonymous
said...
Hi Pransanta, Thanks for your reply. Adding the jar caused to memory heap error. How can i add just the ITelephony.aidl


Prasanta
said...
To use ITelePhony.aidl - copy and past ITelePhony.aidl under com.android.internal.telephony package of your Eclipse Project - It should generate automatically ITelephony.java under gen folder. hope it helps.


surya
said...
hi prasanta, Conversion to Dalvik format failed: Unable to execute dex: null i got this problem after attach that JAR file. i clear my work space and rebuild it then also i got the same problem. can you please help me.


Prasanta
said...
You need to include the JAR as "User Library". In Eclipse- Your Project Folder->Build Path->Add Libraraies...->User Library


Jaison
said...
Prasanta thanks for replying. I did everything you said and bugs out, but when run the app, get the following exception: 10-16 23:26:08.375: VERBOSE/TEST CALL(1700): Get getTeleService... 10-16 23:26:08.405: WARN/System.err(1700): java.lang.NoSuchMethodException: getlTelephoney




prashantak
said...
Awesome post !! very informatory and helpful . Everything worked except telephonyService.setMute(true); . thanks a lot for this


Sai Srinivas
said...
Hai prasanta , i used ur code , to detect phone call, in ddms am getting , prasanta-phone call as tag 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): Incoming Call BroadCast received... 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): Intent: [android.intent.action.PHONE_STATE] 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): Bundle: Bundle[mParcelledData.dataSize=48] 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): Phone Number: null 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): Phone State: OFFHOOK 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): Get getTeleService... 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): answerCall... 10-19 10:32:23.303: VERBOSE/Prasanta-PhoneCall(253): silenceRinger... Over I want to change that ? i mean ddms message ? how can i change that in my code ? Thank u, Sai srinivas


Prasanta
said...
@ Jaison: pls try with the ITelePhony.aidl @ Srinivas: you need to write your own Application following the steps that i have explained.


Sai Srinivas
said...
But am not using single line of code of yours. still am getting debugging messages with name as tag. how to avoid it ?


Abhishek Akhani
said...
Boss.... Really very good stuff... its very helpul with my telephony app.... Keep it up...


Charlie
said...
Hi, great job...The telephonyService.answerRingingCall() works for me but not the telephonyService.endCall(). Is there any other permissions that need to be set or anything else that needs to be done? Thanks!


Prasanta
said...
Hi Charlie, thanks. I forgot to mention, for endCall() you need to add a User Permission- android.permission.CALL_PHONE hope it helps.




Anonymous
said...
hiiiiiii prasanta can u help me in a project of android app Tablet Application..... i have some problems in it can u help me in this concern whats ur id where i can mail u application apk file Regards Tushar SAHNI


Charlie
said...
Thanks Prasanta, the android.permission.CALL_PHONE worked for thetelephonyService.endCall(). Thanks again!!!




Anonymous
said...
Many thanks for amazing post. Keep up the good work...




Anonymous
said...
hi Prasanta, I am android beginner. I need exact usage of this ITelephony.aidl or ITelephony.jar. i totally confused. Awaiting for ur reply at earliest.




Anonymous
said...
Great post Prasanta ! It's working very well in my application. I've tested with the new Android 2.3 emulator and I get an security exception about android.permission.MODIFY_PHONE_STATE. Android is saying that this permission is missing for the current user or process. I've checked it my manifest and it's in there. Is it working for you with Android 2.3 ?


Prasanta
said...
Hi, I haven't yet tested this with Android 2.3 Tested versions 2.1, 2.2 BR, Prasanta


Enrique
said...
Great post Prasanta, quick question, this all runs fine in the emulators, however when I test them on the phone it only works after I restart the phone. Are you aware of this being a requirement? Thanks for the post again.




Anonymous
said...
Hi.. I have added the android.permission.CALL_PHONE. but its not working... Please help me...


Prasanta
said...
pls be more specific and let me know the actual problem you are facing.




Anonymous
said...
its not giving any error for "com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm);" but not implementing this line...


Prasanta
said...
pls check my implementation- http://prasanta-paul.blogspot.com/2010/12/phone-away-widget.html and make sure you are following everything correctly. hope it helps.




Anonymous
said...
Thanks prasanta....


uday_at
said...
Hi..ur post is great but am having an issue. As u said I saved my block numbers in an array and compared with number and used endcall method. But It doing nothing... Please help..


Prasanta
said...
Hi, you can look into the code base of http://prasanta-paul.blogspot.com/2010/12/phone-away-widget.html This might help you. Cheers, Prasanta


Bao Le Duc
said...
I tested on Android 2.1, 2.2, 2.3. Worked perfectly on the first two, but the last one. Any one had successfully tested on Android 2.3?

103 comments:

  1. Is there anybody for help me following call process?
    When Person A calls to Person B, both party will see image/video from remote server before calls connected.( Android OS)

    pls e-mail: info@ticonsys.com

    Phone:+82-10-9629-1477

    Im looking good programer for such android project.

    ReplyDelete
  2. I like your blog Imagination.Nicely you elaborate about this post.This is one of the amazing post.Good .Keep it up.
    Android app developers

    ReplyDelete
  3. Thanks for sharing, I will bookmark and be back again

    Android Application Development

    ReplyDelete
  4. Hey Can we implement placing a call on hold and add call?If yes, Please post your cmment here


    Thanks,
    Chaitanya

    ReplyDelete
  5. It's really useful information about the programming for call control of the android apps. By it we can easily made call function in Android phone.

    Android Apps Development

    ReplyDelete
  6. Nice Post Thanks For Sharing

    For More Information You Can Visit This Website Android Application Development Solutions

    ReplyDelete
  7. I tried your java reflection method for controlling android mobile phones. Its working great.

    Android Training Chennai

    ReplyDelete
  8. I learn a worthful information by this training.This makes very helpful for future reference.All the doubts are very clearly explained in this article.Thank you very much.
    Android Training in chennai | Android Training chennai | Android course in chennai | Android course chennai

    ReplyDelete
  9. Nice to see that you have written again. I was waiting for your next blog, and I have found it at last. You have such a unique style of writing that no one else can replicate you. Can you suggest some online sites where I can gather experience in the field of blogging…how to go about it, and everything else? I came across some marketplaces such as graphic design logos , unique flyer design. Seems good. I will post my skill and let’s see, I may even become as famous as you.

    ReplyDelete
  10. Excellent post. Android is an open source operating system used for tablet computers and smartphones. If your are interested to develop creative mobile applications then you must learn about android OS. Its helpful for you.

    Regards..
    Android Training in Chennai




    ReplyDelete
  11. Nice post,
    just want to know if it possible not to block but forward programmatically special numbers to other number by call receiving?
    Thank You

    ReplyDelete
  12. WebMethods Training in Chennai
    This information is impressive; I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic..

    ReplyDelete
  13. I read your articles very excellent and the i agree our all points because all is very good information provided this through in the post. It is very helpful for me. Keep blogging like this. Thanks.


    SAP training in Chennai

    ReplyDelete
  14. This blog is really impressive.It tells about the call control in android application which is really helpful.
    selenium Training in Chennai

    ReplyDelete

  15. These provided information was really so nice,thanks for giving that post and the more skills to develop after refer that post.our giving articles really impressed for me,because of all information so nice.

    SAP ABAP training in Chennai

    ReplyDelete
  16. This blog is having a wonderful talk. The technology are discussed and provide a great knowledge toall. This helps to learn more details about technology. All this details are important for this technology. Thank you for this blog.
    Android Training in Chennai

    ReplyDelete
  17. These provided information was really so nice,thanks for giving that post and the more skills to develop after refer that post. Your articles really impressed for me,because of all information so nice.

    SAP training in Chennai

    ReplyDelete
  18. Great Article I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because it becomes more and more interesting from the starting lines until the end. So Thank you for sharing a COOL Meaningful stuff with us Keep it up..!

    SAP training in Chennai

    ReplyDelete
  19. Superb i really enjoyed very much with this article here. Really its a amazing article i had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.


    SEO Company in Chennai

    ReplyDelete

  20. That is very interesting; you are a very skilled blogger. I have shared your website in my social networks!

    SAP Training in Chennai

    ReplyDelete
  21. This blog explains the details of most popular technological details. This helps to learn about what are all the different method is there. And the working methods all of that are explained here. Informative blog.
    Digital Marketing Company in Chennai

    ReplyDelete
  22. This blog is having a wonderful talk. The technology are discussed and provide a great knowledge toall. This helps to learn more details about technology. All this details are important for this technology. Thank you for this blog.
    Email Marketing Chennai

    ReplyDelete
  23. Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.

    Branding Services in Chennai

    ReplyDelete
  24. Nice source for us and thanks for sharing this code in this blog and i bookmark this blog for future use.

    Retail and fashion apps development

    ReplyDelete
  25. I’ve been browsing on-line greater than three hours today, but I never discovered any attention-grabbing article like yours. It is beautiful worth sufficient for me. Personally, if all webmasters and bloggers made good content material as you did, the net will be a lot more helpful than ever before.

    SMO Services Chennai

    ReplyDelete
  26. Wow amazing i saw the article with execution models you had posted. It was such informative. Really its a wonderful article. Thank you for sharing and please keep update like this type of article because i want to learn more relevant to this topic.

    Best SEO Training Institute in Chennai

    ReplyDelete
  27. This was my first visit for your site, in my first visit itself i like your post. Your scripting style is good. Thank you for posting this unique post with us.

    Seo Company in Chennai

    ReplyDelete
  28. Great to view this exclusive article. I really enjoyed by reading your blog post. Thank you for your exclusive share with us. Keep on updating!!
    Seo Training in Chennai

    ReplyDelete
  29. article makes an eloquent distinction between the Inner Game an the Outer Game as it applies to Leadership.
    Software Testing Training in Chennai

    ReplyDelete

  30. Great articles, first of all Thanks for writing such lovely Post! Earlier I thought that posts are the only most important thing on any blog. But here at Shoutmeloud I found how important other elements are for your blog.Keep update more posts..


    Digital marketing course in Chennai

    ReplyDelete
  31. this is really too useful and have more ideas from yours. keep sharing many techniques. eagerly waiting for your new blog and useful information. keep doing more.
    Java Training Institute in Chennai

    ReplyDelete
  32. Great... Excellent sharing.. This is very helpful for beginers. Read that provide me more enthusiastic. This helps me get a more knowledge about this topic. Thanks for this.
    Web Designing Training in Chennai

    ReplyDelete
  33. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to our mind.

    Dot Net training in chennai

    ReplyDelete
  34. Thank you for sharing such a nice and interesting blog with us. I have seen that all will say the same thing repeatedly. But in your blog, I had a chance to get some useful and unique information. I would like to suggest your blog in my dude circle. please keep on updates. hope it might be much useful for us. keep on updating...
    seo company in chennai
    Digital Marketing company in chennai

    ReplyDelete
  35. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.thank you for sharing such a great blog with us. expecting for your.

    seo company in india

    ReplyDelete
  36. This blog is having the general information. Got a creative work and this is very different one.We have to develop our creativity mind.This blog helps for this. Thank you for this blog. This is very interesting and useful.
    Facility Management Companies in Chennai

    ReplyDelete
  37. It's interesting that many of the bloggers your tips helped to clarify a few things for me as well as giving.. very specific nice content. And tell people specific ways to live their lives.Sometimes you just have to yell at people and give them a good shake to get your point across.

    Painless Dental Treatment In Chennai

    Best Dental Clinic In Adyar

    ReplyDelete
  38. It's interesting that many of the bloggers to helped clarify a few things for me as well as giving.Most of ideas can be nice content.The people to give them a good shake to get your point and across the command .
    Flats Cleaning in Chennai

    ReplyDelete

  39. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.thank you for sharing such a great blog with us. expecting for your.

    iOS App Development Company

    ReplyDelete
  40. Being new to the blogging world I feel like there is still so much to learn. Your tips helped to clarify a few things for me as well as giving..
    Texting API
    Text message marketing
    Digital Mobile Marketing
    Mobile Marketing Services
    Mobile marketing companies
    Fitness SMS

    ReplyDelete
  41. This blog tells the thing that can be understood quick and that's what the speciality of it.worth sharing..
    Pawn Shops in Montgomery
    Pawn Shops in Birmingham
    Pawn Shops in Mobile

    ReplyDelete
  42. Thanks for appreciating. Really means and inspires a lot to hear from you guys.I have bookmarked it and I am looking forward to reading new articles. Keep up the good work..Believe me, This is very helpful for me
    Digital Marketing Company in chennai
    Digital Marketing Company in India

    ReplyDelete
  43. This comment has been removed by the author.

    ReplyDelete
  44. This comment has been removed by the author.

    ReplyDelete
  45. I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.
    Best Java Training Institute Chennai

    ReplyDelete
  46. Really an interesting and amazing post. Thanks for sharing this wonderful informative article here. I appreciate your hard work.Website Designing Company Bangalore | Web Development Company Bangalore

    ReplyDelete
  47. I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.
    Devops training in Chennai
    Devops training in Bangalore
    Devops Online training
    Devops training in Pune

    ReplyDelete
  48. hank you for benefiting from time to focus on this kind of, I feel firmly about it and also really like comprehending far more with this particular subject matter. In case doable, when you get know-how, is it possible to thoughts modernizing your site together with far more details? It’s extremely useful to me 
    java training in annanagar | java training in chennai

    java training in marathahalli | java training in btm layout

    java training in rajaji nagar | java training in jayanagar

    java training in chennai

    ReplyDelete
  49. You made such an interesting piece to read, giving every subject enlightenment for us to gain knowledge. Thanks for sharing the such information with us

    angularjs Training in chennai
    angularjs Training in chennai

    angularjs-Training in tambaram

    angularjs-Training in sholinganallur

    ReplyDelete
  50. When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.
    Amazon Web Services Training in OMR , Chennai | Best AWS Training in OMR,Chennai
    AWS Training in Chennai |Best Amazon Web Services Training in Chennai
    AWS Training in Bangalore |Best AWS training in Bangalore
    Amazon Web Services Training in Tambaram, Chennai|Best AWS Training in Tambaram, Chennai

    ReplyDelete
  51. When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.
    Amazon Web Services Training in OMR , Chennai | Best AWS Training in OMR,Chennai
    AWS Training in Chennai |Best Amazon Web Services Training in Chennai
    AWS Training in Bangalore |Best AWS training in Bangalore
    Amazon Web Services Training in Tambaram, Chennai|Best AWS Training in Tambaram, Chennai

    ReplyDelete
  52. Very well written blog and I always love to read blogs like these because they offer very good information to readers with very less amount of words....thanks for sharing your info with us and keep sharing.
    python training in pune
    python training institute in chennai
    python training in Bangalore

    ReplyDelete
  53. This information is impressive. I am inspired with your post writing style & how continuously you describe this topic. Eagerly waiting for your new blog keep doing more.

    Franchise Business in India
    Education Franchise
    Computer Education Franchise
    Education Franchise India
    Computer Center Franchise
    Education Franchise Opportunities in India

    ReplyDelete
  54. I am happy to find this post Very useful for me, as it contains lot of information

    Article submission sites
    Guest posting sites

    ReplyDelete
  55. This comment has been removed by the author.

    ReplyDelete
  56. Great post! I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
    angularjs Training in marathahalli

    angularjs interview questions and answers

    angularjs Training in bangalore

    angularjs Training in bangalore

    angularjs Training in chennai

    automation anywhere online Training

    ReplyDelete
  57. Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point.

    Data Science training in Chennai | Data science training in bangalore

    Data science training in pune | Data science online training

    Data Science Interview questions and answers

    ReplyDelete
  58. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.
    fire and safety course in chennai

    ReplyDelete
  59. Thanks for the good words! Really appreciated. Great post. I’ve been commenting a lot on a few blogs recently, but I hadn’t thought about my approach until you brought it up. 
    python course institute in bangalore | python Course institute in bangalore| python course institute in bangalore

    ReplyDelete
  60. Really great post, I simply unearthed your site and needed to say that I have truly appreciated perusing your blog entries.
    python training in chennai | python course institute in chennai

    ReplyDelete
  61. I’m experiencing some small security issues with my latest blog, and I’d like to find something safer.
    fire and safety course in chennai

    ReplyDelete
  62. Nice post. I learned some new information. Thanks for sharing.

    Education
    Technology

    ReplyDelete
  63. When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.

    AWS Training in Bangalore | Amazon Web Services Training in Bangalore
    Amazon Web Services Training in Pune | Best AWS Training in Pune
    AWS Online Training | Online AWS Certification Course - Gangboard
    Top 10 AWS Interview Question and Answers

    ReplyDelete
  64. I love the blog. Great post. It is very true, people must learn how to learn before they can learn. lol i know it sounds funny but its very true. . .
    angularjs Training in marathahalli

    angularjs interview questions and answers

    angularjs-Training in pune

    angularjs Training in bangalore

    angularjs Training in bangalore

    ReplyDelete
  65. Your blog is awesome.You have clearly explained about it ...It's very useful for me to know about new things..Keep on blogging.

    Android Training
    Android Training in Chennai

    ReplyDelete
  66. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.
    python course in pune
    python course in chennai
    python Training in Bangalore

    ReplyDelete
  67. The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea.
    here by i also want to share this.
    Java training in Chennai

    Java training in Bangalore

    Java online training

    Java training in Pune

    ReplyDelete
  68. All are saying the same thing repeatedly, but in your blog I had a chance to get some useful and unique information, I love your writing style very much, I would like to suggest your blog in my dude circle, so keep on updates.
    rpa training in bangalore
    best rpa training in bangalore
    rpa training in pune

    ReplyDelete
  69. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.
    Data Science training in chennai
    Data Science training in OMR
    Data Science training in chennai
    Data Science Training in Chennai
    Data Science training in Chennai
    Data Science training in anna nagar
    Data science training in bangalore

    ReplyDelete
  70. Thanks for the informative article. This is one of the best resources I have found in quite some time. Nicely written and great info. I really cannot thank you enough for sharing.
    apple iphone service center in chennai | apple ipad service center in chennai | apple iphone service center in chennai

    ReplyDelete
  71. And indeed, I’m just always astounded concerning the remarkable things served by you. Some four facts on this page are undeniably the most effective I’ve had.
    Datascience Course Training in Chennai | Best Data Science Training in Chennai
    RPA Course Training in Chennai | Best RPA Training in Chennai
    AWS Course Training in Chennai | Best AWS Training in Chennai

    ReplyDelete
  72. Hey, I am Justin Taylor working at PayPal for past several years. PayPal is leading platform for online money transfer across the globe. With my years of experience at PayPal, I am going to help users and resolving issues. Often users are not able to log into a PayPal account- in such a situation they are helpless. So I will help users in easy procedure for PayPal login.

    Read More:-

    Change PayPal Password

    Reset PayPal Password

    PayPal Account Closed

    PayPal Limit

    PayPal Refund

    Delete PayPal Account

    ReplyDelete
  73. https://haappyherbs.com/shop/ujvala-brightening-moisturizer-50gms/?v=c86ee0d9d7ed
    https://haappyherbs.com/shop/24k-gold-flawless-wonder-cream-2/?v=c86ee0d9d7ed
    https://haappyherbs.com/shop/24k-gold-flawless-wonder-cream-2-vc86ee0d9d7ed/?v=c86ee0d9d7ed

    ReplyDelete