亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何以編程方式回答/結束Android 4.1中的通話?

如何以編程方式回答/結束Android 4.1中的通話?

白豬掌柜的 2019-08-16 15:25:55
如何以編程方式回答/結束Android 4.1中的通話?我正在寫一個Android應用程序,我需要接聽來電,做一些工作,然后結束通話。在所有谷歌搜索之后,我可以找到兩種不同的方法來實現這一點,這兩種方法都不適用于Android的最新版本,特別是在4.1,Jelly Bean之后。I.)使用廣播接收器中的Java Reflection為“android.intent.action.PHONE_STATE”訪問“com.android.internal.telephony.ITelephony”。下面的示例代碼可以在數百個相關帖子中找到:public class PhoneCallReceiver extends BroadcastReceiver {  Context context = null;  private static final String TAG = "Phone call";  private ITelephony telephonyService;@Override  public void onReceive(Context context, Intent intent) {   if (!intent.getAction().equals("android.intent.action.PHONE_STATE"))      return;   Log.v(TAG, "Receving....");   TelephonyManager telephony = (TelephonyManager)    context.getSystemService(Context.TELEPHONY_SERVICE);     try {       Log.v(TAG, "Get getTeleService...");       Class c = Class.forName(telephony.getClass().getName());       Method m = c.getDeclaredMethod("getITelephony");       m.setAccessible(true);       telephonyService = (ITelephony) m.invoke(telephony);       telephonyService.silenceRinger();       Log.v(TAG, "Answering Call now...");       telephonyService.answerRingingCall();       Log.v(TAG, "Call answered...");       //telephonyService.endCall();   } catch (Exception e) {    e.printStackTrace();    Log.e(TAG,            "FATAL ERROR: could not connect to telephony subsystem");    Log.e(TAG, "Exception object: " + e);   }  }}此方法需要工作,并且此權限已被定義為android v 2.3中的“僅適用于系統應用程序”。簡而言之,普通用戶應用程序無法再在清單文件中定義此權限。II。)另一種方法是模擬推動Headset鉤子,這使Android接聽電話。這是通過廣播“Intent.ACTION_MEDIA_BUTTON”來完成的,如下面的代碼所示。此方法適用于Android 4.1,之后android限制用戶應用程序廣播“Intent.ACTION_MEDIA_BUTTON”。所以我的結論是,目前我們無法在Android 4.1或更高版本中實現這一目標。有沒有其他人找到這個問題的任何其他解決方案或解決方法?
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 373 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號