Android自動接聽和結束通話電話實現原理
轉自:http://bbs.51cto.com/thread-1078059-1.html
一 前言
這兩天要研究類似白名單黑名單以及手勢自動接聽的一些功能,所以呢,自然而然的涉及到怎麼自動接聽/結束通話電話的功能了。
對於自動接聽這一塊,android4.1版本及其以上的版本和之前的版本處理邏輯不太一樣,因為google增加了許可權檢查...所以,按照以前的方法可能不能實現自動接聽了.
二 android低版本自動接聽/結束通話實現
1. copy android原始碼的ITelephony.aidl檔案到自己的專案
為什麼要copy這個檔案到自己的專案中呢?這是因為接聽/結束通話電話的方法在介面ITelephony.java裡面,而這個介面時隱藏的,也就是sdk開發是看不到這個介面的。
比如:
01 |
package com.android.internal.telephony; |
02 |
/** |
03 |
*
Interface used to interact with the phone. Mostly this is used by the |
04 |
*
TelephonyManager class. A few places are still using this directly. |
05 |
*
Please clean them up if possible and use TelephonyManager insteadl. |
06 |
* |
07 |
*
{@hide} |
08 |
*/ |
09 |
public interface
ITelephony extends android.os.IInterface |
10 |
{ |
11 |
... |
12 |
} |
然後把系統的ITelephony.aidl拷貝過來.
由於ITelephony.aidl關聯了NeighboringCellInfo.aidl,所以也一併拷貝過來。
不過要注意的是,NeighboringCellInfo.aidl所在的的包名是android.telephony;所以,你要新建一個包android.telephony,然後把NeighboringCellInfo.aidl放到
包android.telephony裡面。
NeighboringCellInfo.aidl的定義:
1 |
package android.telephony; |
2 |
相關推薦
Android自動接聽和結束通話電話實現原理
轉自:http://bbs.51cto.com/thread-1078059-1.html 一 前言 這兩天要研究類似白名單黑名單以及手勢自動接聽的一些功能,所以呢,自然而然的涉及到怎麼自動接聽/結束通話電話的功能了。 對於自動接聽這一塊,android4.1
android 來電接聽和結束通話 支援目前所有版本
////////////////////////////////////結束通話電話/////////////////////////////////////// try {getITelephony(telmanager).endCall();} catch (
android 接聽和結束通話實現方式
注意:android2.3版本及以上不支援下面的自動接聽方法。 (會拋異常:java.lang.SecurityException: Neither user xxxxx nor current process hasandroid.permission.MODIFY_PHONE_STATE.)
Android通過程式接聽或者結束通話電話
這篇文章教你如何幫助使用者自動接聽或者結束通話來電。當然並不是我原創的程式碼,我只不過是把stackoverflow上的一些程式碼整合了一下,做個程式碼的二傳手。 原始碼 AcceptOrRejectCallDemo 原始碼中用了MVP的模式,只是最簡
Android 藍芽開發(八)hfp接聽、結束通話電話
本文已授權微信公眾號 fanfan程式媛 獨家釋出 掃一掃文章底部的二維碼或在微信搜尋 fanfan程式媛 即可關注 繼續研究hfp相關功能。藍芽耳機可以控制手機接聽、拒接、結束通話電話,撥打電話等功能。本文主要分析下起這些操作的大致流程。 在
Android撥打、接聽、結束通話電話操作
Android2.3之前的系統可以通過反射機制呼叫ITelephone的方法來結束通話電話,因為Android2.3以後增加了對permission android.permission.MODIFY_PHONE_STATE 的限制,之前的反射的方法不能用了,我們可以通過
android之結束通話電話
//結束通話電話,需要呼叫系統底層的方法,要用哪個到反射拿底層方法 public void endcall(){ //載入serviceManager的位元組碼 Class clazz=CallSmsSafeService.clas
利用JAVA反射機制訪問ITelephony隱藏介面(android程式中結束通話電話)
這兩天研究如何利用程式結束通話電話。發現在Android1.0的時候Phone中提供了提供了endCall方法,而1.5以後這個方法被設定為私有了。如此有了如下研究: /** * 利用JAVA反射機制呼叫ITelephony的endCall()結束通話。 */
轉載:Android 靜默安裝和智慧安裝的實現方法
1 簡介 最近研究了Android的靜默安裝和智慧安裝,於是寫部落格記錄一下。 靜默安裝就是無聲無息的在後檯安裝apk,沒有任何介面提示。 智慧安裝就是有安裝介面,但全部是自動的,不需要使用者去點選。 首先強調兩點: 靜默安裝必須要root許可權 智慧安裝必須
android使用Viewpager和TabLayout結合fragment實現首頁底部導航的效果
前言 現如今幾乎每一款手機APP首頁都採用了底部導航的功能,現在我們使用Viewpager和TabLayout結合fragment來實現該功能。 效果圖如下: 這裡有一個問題,TabLayout的五個icon在模擬器中寬度無法充滿螢幕,暫時還不知道為什麼,手機能夠正
Android開發ViewPager和Fragment結合使用實現新聞類app( 三 )(基本成型的app)
//該類為我們的標題欄的自定義View public class MyLinearLayout extends LinearLayout { public MyLinearLayout(Context context, AttributeSet attrs) { super(cont
Android之ToolBar和自定義ToolBar實現沉浸式狀態列
沉浸式狀態列確切的說應該叫做透明狀態列。一般情況下,狀態列的底色都為黑色,而沉浸式狀態列則是把狀態列設定為透明或者半透明。 沉浸式狀態列是從android Kitkat(Android 4.4)開始出
Android動態顯示和隱藏狀態列/實現沉浸式狀態列
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // getWindow().setFlags(WindowMa
Android自動批量靜默安裝應用指令碼實現
1、需求 1)自動安裝APK到不同的手機 2)靜默安裝,不需要通過螢幕點選直接安裝 3)支援安裝多個應用到手機端 2、靜默安裝實現 pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
Android記憶體快取和磁碟快取的實現
記憶體快取 Android自帶的LruCache實現了記憶體快取,LruCache內部主要使用LinkedHashMap的特性來實現,因為LinkedHashMap可支援FIFO和LRU訪問。 LinkedHashMap的特點 LinkedHashMap繼
Android自動dump hprof檔案的功能實現
要實現這個功能,必須提升許可權,必須滿足以下兩個條件之一 1、在root的裝置上執行 2、如果機子沒root,需要在app的manifest檔案中新增sharedUid,但是使用了這個的話,需要對apk檔案進行系統簽名 android:sharedUserId="andro
自旋鎖,讀寫鎖和順序鎖的實現原理
並且 保護 表達 min 返回 create creat rwlock ini 常用的同步原語鎖,到多核處理器時代鎖已經是必不可少的同步方式之一了。無論設計多優秀的多線程數據結構,都避不開有競爭的臨界區,此時高效的鎖顯得至關重要。鎖的顆粒度是框架/程序設計者所關註的,
AFNetworking 3.0 使用詳解 和 源碼解析實現原理
數據 syn ria 特定 style conn afn rda gre AFN原理&& AFN如何使用RunLoop來實現的: NSString * requestURL = @"http://119.254.98.136/api/v1/web/
Java的Executor框架和執行緒池實現原理
一,Java的Executor框架 1,Executor介面 public interface Executor { void execute(Runnable command); } Executor介面是Executor框架中最基礎的部分,定義了一個用於
(精)Spring IOC核心原始碼學習III:bean標籤和自定義標籤實現原理
本文將解析spring bean定義標籤和自定義標籤的解析實現原理。這裡說的標籤僅限於以xml作為bean定義描述符的spring容器,繼承AbstractXmlApplicationContext的一些子 容器,如XmlApplicationContext、ClassPat