實現甩動撥打和結束通話電話

2021-06-08 14:22:15 字數 3157 閱讀 1608

這部分是講感測器中的乙個例項。

通過上面的例子我們學會了如何獲得某種型別的感測器,下面通過乙個例項來學習如何使用某乙個型別的感測器。我們以加速感測器為例,來實現這樣乙個功能:搖動手機便自動撥打某親情號碼,並實現再次搖動則掛機的功能。

工程目錄:ex_12_03

第一步,ui布局main.xml的**如下,其執行效果如圖12-10所示。

xml version="1.0" encoding="utf-8"

?>

<

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

>

第三步,activity類shakesensoractivity的實現。該類實現sensorlistener介面,新增加速度偵聽事件,通過判斷裝置x、y、z方向的總晃動值來判斷是否啟動打**和掛機操作。以撥打10086測試為例,當裝置總晃動值大於100作為乙個測試判斷點,如果當前沒有在通話介面,就通過intent啟動撥打**,否則就掛機操作。裝置搖動時,啟動**、掛機的介面狀態如圖圖12-11、圖12-12所示。

▲圖12-10  軟體執行效果圖            ▲圖12-11  **啟動介面圖12-12  搖動裝置掛機時的狀態介面

下面就來看看**:

public

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)

}

通過gettelephony()方法,初始乙個itelephony例項,方便呼叫,目前只用到了掛機關閉通話,打**也可以通過itelephony.dial(「10086」)直接撥打。這樣就輕鬆實現了用感測器實現甩動打、掛**功能。

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...