Monday, November 26, 2012

How To Vibrate The Android Phone

In this tutorial we learn How to Vibrate a phone in default manner or  in the pattern you want.

What we learn:
Service
Vibrating the Phone

Requires Knowledge:
Basic Android


To vibrate a phone we need following Permission Do not forget to declare this permission in Manifest.

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

We can Vibrate a Phone Using an Activity  , Service and Using Threads.

Using Activity will not be a good Idea because it takes time to vibrate the Phone and an Activity always runs in foreground.

We will implement using Service because  a Service runs in Background.

for we need to have an Object of Class Vibrator, we do not create the Object directly but we get Vibrate System Service.

Vibrator v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);

Add    <uses-permission android:name="android.permission.VIBRATE"/>  in Your Manifest

So let's start.

Create a new Android Project  "Vibrate Phone".
and edit the manifest and main.xml file

manifest file


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidjuncture.vibrate"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
    
    <uses-permission android:name="android.permission.VIBRATE"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".VibrateMainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <!-- Declare the Vibrate Service -->
        <service android:name=".VibrateService"/>
        
    </application>

</manifest>

main.xml


(to be inflated/used in VibrateMainActivity)




<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="#99C2D6"
    android:orientation="vertical">
    
    

    <TextView
        android:layout_marginTop="140dp"
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:text="Android Vibrate Service Example" />

    <Button
        android:id="@+id/buttonVibrate"
        android:layout_marginTop="20dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Vibrate" />
    
</LinearLayout>

When User clicks on Vibrate Button we will start a new Service which will vibrate the phone.

VibrateMainActivity .java

public class VibrateMainActivity extends Activity 
{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
   
    Button btnVibrate=(Button)findViewById(R.id.buttonVibrate);
   
   
    // Set on click listener and start vibrate service when clicked on Button Vibrate
   
    btnVibrate.setOnClickListener(new View.OnClickListener() {

public void onClick(View arg0) {
// TODO Auto-generated method stub

// Create a New Intent and start the service
Intent intentVibrate =new Intent(getApplicationContext(),VibrateService.class);
startService(intentVibrate);

}
});
    }

   
}





And The Service Class

Do Not Forget To Declare the Service in Manifest like
<service android:name=".VibrateService"/>

public class VibrateService  extends Service
{

   

           @Override
            public void onStart(Intent intent, int startId) 
           {
                // TODO Auto-generated method stub
                super.onStart(intent, startId);
               
                       
                       
                                    Vibrator v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);

                                     // pass the number of millseconds fro which you want to vibrate the phone here we
                                     // have passed 2000 so phone will vibrate for 2 seconds.

                                      v.vibrate(2000);

                                   // If you want to vibrate  in a pattern
                                   //  long pattern[]={0,800,200,1200,300,2000,400,4000};
                                   // 2nd argument is for repetition pass -1 if you do not want to repeat the Vibrate
                                   // v.vibrate(pattern,-1);

                                  Toast.makeText(getApplicationContext(), "Phone is Vibrating", Toast.LENGTH_LONG).show();
                             }

        @Override
        public IBinder onBind(Intent intent)
        {
            // TODO Auto-generated method stub
            return null;
        }
      
}

Point To Note:


   long pattern[]={0,800,200,1200,300,2000,400,4000}

this is pattern in which we want to Vibrate the Phone
first 0  means silent for 0 milisecond
800 means vibrate for 800 milisecond
200 means  means silent for 200 milisecond
1200  means vibrate for 1200 miliseconds

and So On.



49 comments:

  1. Brilliant! I'm an experienced developer but new to android. I've looked a loads of other examples of how to do this, but your code is simple and easy to follow.

    Thank you!

    ReplyDelete
  2. Really helpfull!!!!!!!

    ReplyDelete
  3. Extremely helpful! Very concise and clear.

    ReplyDelete
  4. How to make with checkbox ? Thanks...

    ReplyDelete
  5. Does not work on Android 5.0+

    ReplyDelete
  6. I want to add vibration pattern for specfic contact can you please help me with this..??

    ReplyDelete
  7. Thanks for sharing this valuable content. In my view, if all webmasters and bloggers made good content as you did, the web will be a lot more useful than ever before. Voyance telephone

    ReplyDelete
  8. Wow, What a Excellent post. I really found this to much informatics. It is what i was searching for.I would like to suggest you that please keep sharing such type of info.Thanks Onida Customer Care

    ReplyDelete
  9. Thank you again for all the knowledge you distribute,Good post. I was very interested in the article, it's quite inspiring I should admit. I like visiting you site since I always come across interesting articles like this one.Great Job, I greatly appreciate that.Do Keep sharing! Regards, Phone spy

    ReplyDelete
  10. I found your this post while searching for some related information on blog search...Its a good post..keep posting and update the information. spy phone app

    ReplyDelete
  11. Cell phones have become a significant piece of our lives.Display reparatur

    ReplyDelete
  12. Anupama is an Indian drama television series produced by Ekta Kapoor's Anupama delayed check out the new premiere date India Today.

    Anupama Full Episode

    ReplyDelete
  13. I definitely enjoying every little bit of it. It is a great website and nice share. I want to thank you. Good job! You guys do a great blog, and have some great contents. Keep up the good work 먹튀검증커뮤니티

    ReplyDelete
  14. "Superb, what a weblog it is! This webpage presents helpful data to us, keep it up.

    " 메이저놀이터

    ReplyDelete
  15. "Thanks for the valuable information and insights you have so provided here...

    " 메이저놀이터

    ReplyDelete
  16. I read your post and I found it amazing! thank! 먹튀검증목록

    ReplyDelete
  17. Very informative post! There is a lot of information here that can help any business get started with a successful social networking campaign. 토토사이트

    ReplyDelete
  18. Good article, but it would be better if in future you can share more about this subject. Keep posting. 메이저놀이터

    ReplyDelete
  19. I’ve found every article I’ve read very helpful. Good one, and keep it going. windshield repair san diego

    ReplyDelete
  20. I found that site very usefull and this survey is very cirious, I ' ve never seen a blog that demand a survey for this actions, very curious.. 토토사이트

    ReplyDelete
  21. I seriously love your website.. Excellent colors & theme.
    Did you create this amazing site yourself? Please reply back as I’m attempting to create my own site
    and want to know where you got this from or just what the theme is named.
    Cheers!한국야동

    ReplyDelete
  22. It's always a pleasure to read your magnificent articles on this site. You are among the top writers of this generation, and there's nothing you can do that will change my opinion on that. My friends will soon realize how good you are. 온라인포커

    ReplyDelete
  23. Thank you and thank you so much. I'll share you useful information.사설토토사이트

    ReplyDelete
  24. Your writing is perfect and complete. However, I think it will be more wonderful if your post includes additional topics that I am thinking of. I have a lot of posts on my site similar to your topic. Would you like to visit once? 토토커뮤니티

    ReplyDelete
  25. Your writing is perfect and complete. However, I think it will be more wonderful if your post includes additional topics that I am thinking of. I have a lot of posts on my site similar to your topic. Would you like to visit once? 토토커뮤니티

    ReplyDelete
  26. Hello, I'm happy to see some great articles on your site. Would you like to come to my site later? My site also has posts, comments and communities similar to yours. Please visit and take a look 토토사이트

    ReplyDelete
  27. I saw your article well. You seem to enjoy 바카라검증사이트 for some reason. We can help you enjoy more fun. Welcome anytime :-)

    ReplyDelete
  28. I've been searching for hours on this topic and finally found your post. , I have read your post and I am very impressed. We prefer your opinion and will visit this site frequently to refer to your opinion. When would you like to visit my site? 토토사이트

    ReplyDelete
  29. Do you have a spam problem on this website; I also am a blogger, and I was wanting to know your situation 먹튀검증 many of us have developed some nice practices and we are looking to trade techniques with others, why not shoot me an email if interested.

    ReplyDelete
  30. The article composing business is going extraordinary for me at this moment, and the vast majority of my prosperity is because of the substance that you post here. I utilize your substance to compose my articles, and the substance makes my great article incredible! 메이저놀이터

    ReplyDelete
  31. Your post is very interesting to me. Reading was so much fun. I think the reason reading is fun is because it is a post related to that I am interested in. Articles related to 메이저놀이터순위 you are the best. I would like you to write a similar post about !

    ReplyDelete
  32. What a post I've been looking for! I'm very happy to finally read this post. 토토사이트 Thank you very much. Can I refer to your post on my website? Your post touched me a lot and helped me a lot. If you have any questions, please visit my site and read what kind of posts I am posting. I am sure it will be interesting.

    ReplyDelete
  33. First of all, I would like to thank you for writing this article. I'm trying to make an article by citing your article.바카라사이트

    ReplyDelete
  34. I've been looking for photos and articles on this topic over the past few days due to a school assignment, and I'm really happy to find a post with the material I was looking for! I bookmark and will come often! Thanks :D 먹튀신고

    ReplyDelete
  35. When I read an article on this topic, the first thought was profound and difficult, and I wondered if others could understand.. My site has a discussion board for articles and photos similar to this topic. Could you please visit me when you have time to discuss this topic? 먹튀검증커뮤니티

    ReplyDelete
  36. Your writing is perfect and complete. However, I think it will be more wonderful if your post includes additional topics that I am thinking of. I have a lot of posts on my site similar to your topic. Would you like to visit once? 먹튀커뮤니티

    ReplyDelete
  37. It's really great. Thank you for providing a quality article. There is something you might be interested in. Do you know 메이저토토 ?

    ReplyDelete
  38. There must have been many difficulties in providing this information.Bóng88 Nevertheless, thank you for providing such high-quality information.

    ReplyDelete
  39. Wow! Thank you! I continuously needed to write on my site something like that. Can I include a part of your post to my site?egaon casino

    ReplyDelete
  40. Youre so right. Im there with you. Your weblog is definitely worth a read if anyone comes throughout it. Im lucky I did because now Ive received a whole new view of this. 먹튀검증사이트

    ReplyDelete

  41. Thanks for your marvelous posting! I actually enjoyed reading it, you could be
    a great author.I will remember to bookmark your blog and will
    eventually come back from now on. I want to encourage you to continue your great
    writing, have a nice weekend!

    Website:온라인카지노


    ReplyDelete