首页 > 系统 > Android > 正文

Android实现手机振动设置的方法

2020-04-11 11:25:10
字体:
来源:转载
供稿:网友

本文实例讲述了Android实现手机振动设置的方法。分享给大家供大家参考。具体如下:

main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical" android:layout_width="fill_parent"  android:layout_height="fill_parent">  <LinearLayout android:orientation="horizontal"    android:layout_width="fill_parent"    android:layout_height="wrap_content">    <ToggleButton android:id="@+id/tb1"      android:textOn="关闭振动"       android:textOff="启动振动"      android:checked="false"       android:layout_width="wrap_content"      android:layout_height="wrap_content" />    <TextView android:id="@+id/tv1"      android:text="振动已关闭"       android:layout_width="wrap_content"      android:layout_height="wrap_content" />  </LinearLayout>  <LinearLayout android:orientation="horizontal"    android:layout_width="fill_parent"    android:layout_height="wrap_content">    <ToggleButton android:id="@+id/tb2"      android:textOn="关闭振动"       android:textOff="启动振动"      android:checked="false"       android:layout_width="wrap_content"      android:layout_height="wrap_content" />    <TextView android:id="@+id/tv2"      android:text="振动已关闭"       android:layout_width="wrap_content"      android:layout_height="wrap_content" />  </LinearLayout></LinearLayout>

清单文件:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.ljq.activity" android:versionCode="1"  android:versionName="1.0">  <application android:icon="@drawable/icon"    android:label="@string/app_name">    <activity android:name=".VibrateActivity"      android:label="@string/app_name">      <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category          android:name="android.intent.category.LAUNCHER" />      </intent-filter>    </activity>  </application>  <uses-sdk android:minSdkVersion="7" />  <!-- 设置手机震动权限 -->  <uses-permission android:name="android.permission.VIBRATE" /></manifest>

VibrateActivity类:

package com.ljq.activity;import android.app.Activity;import android.app.Service;import android.os.Bundle;import android.os.Vibrator;import android.widget.CompoundButton;import android.widget.TextView;import android.widget.ToggleButton;import android.widget.CompoundButton.OnCheckedChangeListener;public class VibrateActivity extends Activity {  private Vibrator vibrator=null;  private ToggleButton tb1=null, tb2=null;  private TextView tv1=null, tv2=null;  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    //注意模拟器是模拟不了震动的,得真机测试哦    //创建vibrator对象    vibrator=(Vibrator)getSystemService(Service.VIBRATOR_SERVICE);    tv1=(TextView)findViewById(R.id.tv1);    tv2=(TextView)findViewById(R.id.tv2);    tb1=(ToggleButton)findViewById(R.id.tb1);    tb2=(ToggleButton)findViewById(R.id.tb2);    tb1.setOnCheckedChangeListener(listener);    tb2.setOnCheckedChangeListener(listener);  }  OnCheckedChangeListener listener=new OnCheckedChangeListener(){    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {      ToggleButton toggleButton=(ToggleButton)buttonView;      switch (toggleButton.getId()) {      case R.id.tb1:        if(isChecked){          //根据指定的模式进行震动          //第一个参数:该数组中第一个元素是等待多长的时间才启动震动,          //之后将会是开启和关闭震动的持续时间,单位为毫秒          //第二个参数:重复震动时在pattern中的索引,如果设置为-1则表示不重复震动          vibrator.vibrate(new long[]{1000,50,50,100,50}, -1);          tv1.setText("振动已启动");        }else {          //关闭震动          vibrator.cancel();          tv1.setText("震动已关闭");        }        break;      case R.id.tb2:        if(isChecked){          //启动震动,并持续指定的时间          vibrator.vibrate(3500);          tv2.setText("振动已启动");        }else {          //关闭启动          vibrator.cancel();          tv2.setText("震动已关闭");        }        break;      }    }  };}

运行结果:

希望本文所述对大家的Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表