vibratorandroid
❶ 安卓手機震動文件在哪
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編寫代碼調用Vibrator震動功能,按下按鈕button始終沒有震動
java">btnFast.setOnClickListener(this);
btnNormal.setOnClickListener(this);
btnLow.setOnClickListener(this);
❸ android和linux的區別
有以下三點區別:
1、Android沒有本地窗口系統,而Linux是有X窗口系統。
2、Android沒有glibc支持,而Linux是有glibc支持的。
3、Android是有自己專有的驅動程序。
雖然Android基於Linux內核,但是它與Linux之間還是有很大的差別。
(3)vibratorandroid擴展閱讀
Android專有的驅動程序
1、Android Binder 基於OpenBinder框架的一個驅動,用於提供 Android平台的進程間通信(InterProcess Communication,IPC)功能。源代碼位於drivers/staging/android/binder.c。
2、Android電源管理(PM) 一個基於標准Linux電源管理系統的輕量級Android電源管理驅動,針對嵌入式設備做了很多優化。源代碼位於:
kernel/power/earlysuspend.c
kernel/power/consoleearlysuspend.c
kernel/power/fbearlysuspend.c
kernel/power/wakelock.c
kernel/power/userwakelock.c
3、低內存管理器(Low Memory Killer) 比Linux的標準的OOM(Out Of Memory)機制更加靈活,它可以根據需要殺死進程以釋放需要的內存。源代碼位於 drivers/staging/ android/lowmemorykiller.c。
4、匿名共享內存(Ashmem) 為進程間提供大塊共享內存,同時為內核提供回收和管理這個內存的機制。源代碼位於mm/ashmem.c。
5、Android PMEM(Physical) PMEM用於向用戶空間提供連續的物理內存區域,DSP和某些設備只能工作在連續的物理內存上。源代碼位於drivers/misc/pmem.c。
6、Android Logger 一個輕量級的日誌設備,用於抓取Android系統的各種日誌。源代碼位於drivers/staging/android/logger.c。
7、Android Alarm 提供了一個定時器,用於把設備從睡眠狀態喚醒,同時它還提供了一個即使在設備睡眠時也會運行的時鍾基準。源代碼位於drivers/rtc/alarm.c。
8、USB Gadget驅動 一個基於標准 Linux USB gadget驅動框架的設備驅動,Android的USB驅動是基於gaeget框架的。源代碼位於drivers/usb/gadget/。
9、Android Ram Console 為了提供調試功能,Android允許將調試日誌信息寫入一個被稱為RAM Console的設備里,它是一個基於RAM的Buffer。源代碼位於drivers/staging/android / ram_console.c。
10、Android timed device 提供了對設備進行定時控制的功能,目前支持vibrator和LED設備。源代碼位於drivers/staging/android /timed_output.c(timed_gpio.c)。
參考資料:網路——Android
網路——linux
❹ 使用命令 讓Android手機 震動幾秒鍾,可以實現嗎
在與用戶交互時,常常會用到震動功能,以提醒用戶。該功能實現比較簡單,請參閱下面主要代碼:
[java] import android.app.Activity;
import android.app.Service;
import android.os.Vibrator;
public class TipHelper {
public static void Vibrate(final Activity activity, long milliseconds) {
Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(milliseconds);
}
public static void Vibrate(final Activity activity, long[] pattern,boolean isRepeat) {
Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(pattern, isRepeat ? 1 : -1);
}
}
import android.app.Activity;
import android.app.Service;
import android.os.Vibrator;
public class TipHelper {
public static void Vibrate(final Activity activity, long milliseconds) {
Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(milliseconds);
}
public static void Vibrate(final Activity activity, long[] pattern,boolean isRepeat) {
Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(pattern, isRepeat ? 1 : -1);
}
}
當然,www.2cto.com 僅僅有上面的代碼,還是不行的。我們還需要在AndroidManifest.xml 中添加震動許可權:
[html] <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.VIBRATE" />
通過上面操作,我們可以使用TipHelper所定義的函數了。兩個Vibrate函數的參數簡單介紹如下:
final Activity activity :調用該方法的Activity實例
long milliseconds :震動的時長,單位是毫秒
long[] pattern :自定義震動模式 。數組中數字的含義依次是[靜止時長,震動時長,靜止時長,震動時長。。。]時長的單位是毫秒
boolean isRepeat : 是否反復震動,如果是true,反復震動,如果是false,只震動一次