這部分是講感測器中的乙個例項。
通過上面的例子我們學會了如何獲得某種型別的感測器,下面通過乙個例項來學習如何使用某乙個型別的感測器。我們以加速感測器為例,來實現這樣乙個功能:搖動手機便自動撥打某親情號碼,並實現再次搖動則掛機的功能。
工程目錄:ex_12_03
第一步,ui布局main.xml的**如下,其執行效果如圖12-10所示。
xml version="1.0" encoding="utf-8"第三步,activity類shakesensoractivity的實現。該類實現sensorlistener介面,新增加速度偵聽事件,通過判斷裝置x、y、z方向的總晃動值來判斷是否啟動打**和掛機操作。以撥打10086測試為例,當裝置總晃動值大於100作為乙個測試判斷點,如果當前沒有在通話介面,就通過intent啟動撥打**,否則就掛機操作。裝置搖動時,啟動**、掛機的介面狀態如圖圖12-11、圖12-12所示。?>
<
linearlayout
xmlns:android
=""android:orientation
="vertical"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
>
<
textview
android:layout_width
="fill_parent"
android:layout_height
="wrap_content"
android:text
="當前狀態:就緒"
android:id
="@+id/state"
android:textcolor
="#ff0000"
/>
<
button
android:layout_width
="fill_parent"
android:layout_height
="wrap_content"
android:id
="@+id/call"
android:text
="打**(10086)"
/>
<
button
android:layout_width
="fill_parent"
android:layout_height
="wrap_content"
android:id
="@+id/stop"
android:text
="掛機"
/>
linearlayout
>
▲圖12-10 軟體執行效果圖 ▲圖12-11 **啟動介面圖12-12 搖動裝置掛機時的狀態介面
下面就來看看**:
public通過gettelephony()方法,初始乙個itelephony例項,方便呼叫,目前只用到了掛機關閉通話,打**也可以通過itelephony.dial(「10086」)直接撥打。這樣就輕鬆實現了用感測器實現甩動打、掛**功能。class shakesensoractivity extends activity implements sensorlistener
});((button) mainview.findviewbyid(r.id.stop)).setonclicklistener(new onclick- listener()
});//
獲取感測器管理器
sm = (sensormanager) getsystemservice(context.sensor_service);
//註冊加速度感測器
sm.registerlistener(this,
sensormanager.sensor_accelerometer,sensormanager. sensor_delay_normal);
}@override
public
void finish()
@override
public
void onaccuracychanged(int sensor, int accuracy)
@override
public
void onsensorchanged(int sensor, float values)
if (currtime - lasttime > 200)
totalshake = totalshake + currshake;
if (totalshake > 100) else
}lastx = x;
lasty = y;
lastz = z;
lasttime = currtime;
}/**
* tell 10086開啟通話介面
*/private
synchronized
void callphonenumber10086()
/*** 結束通話
*/private
synchronized
void closephone() catch (remoteexception e)
}/**
* 初始** 例項
*/public
void gettelephony() catch (securityexception e) catch (nosuchmethodexception e)
try catch (illegalargumentexception e) catch (illegalacces***ception e) catch (invocationtargetexception e)
}
android電話流程 打電話,接電話,結束通話電話
一 android打 流程 1 打 的入口是在outgoingcallbroadcaster這個類中,下層我就沒深入去理解了,此類是繼承的activity,在其oncreate方法裡面用intent去接收需要撥打的 然後判斷此號碼是否為緊急號碼 1 如果為緊急號碼 立即啟動incallscreen類...
結束通話電話的實現 即類似於電話號碼黑名單
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!1 需要用到的許可權如下 android name android.permission.read phone state android name android.permission.write contacts android name an...
Android動畫 仿MIUI8結束通話電話動畫
用過miui8的都大概留意到了這個動畫,看著很炫,於是花了一天時間做了個。先上效果圖 整個動畫可以分成2部分,第1部分是個類似於波紋的動畫,讓他反過來就可以了。這裡用到了cardview,cardview是5.0新增的控制項,繼承與framelayout。首先是新增引用 compile com.an...