嗨我写的应用程序按下我的覆盖按钮来接听来电。这在Android 4.0.3 - 4.3上运行完美,但不适用于HTC sense 4和HTC sense 5。 有人知道如何为HTC意识带来这个功能吗?
非常感谢)
我在常规android中用于呼叫接受的代码: ////////////////////////////////////////////////// /////////////////////////////////////////////
public static void answerIncomingCall(Context context) {
Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(i, null);
}
/////////////////////////////////////////////// ////////////////////////////////////////////////
不适合HTC意义。在我修改了一下之后,这在HTC openSens模拟器上有效但在真正的HTC sense 5和4上没有工作:
/////////////////////////////////////////////// ////////////////////////////////////////////////
public static void answerIncomingCallHTC(Context context) {
Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP ,KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(i, "android.permission.CALL_PRIVILEGED");
}
/////////////////////////////////////////////// ////////////////////////////////////////////////
我还尝试在HTCDev门户中使用开放的Sesne APi。并找到了两种可能的选择,但两者都不起作用:(
第一名:
PhoneCallUIService.PhoneCallUIState phone = new PhoneCallUIState(context);
phone.setCallState( PhoneCallUIService.PhoneCallUIState.CALL_STATE_OFFHOOK);
但没有找到任何课程例外......
第二: 我试图绑定他们的open.phone服务,但我没有成功绑定服务
/////////////////////////////////////////////// ////////////////////////////////////////////////
public static void answerIncomingCallHTC(Context context) {
/// Defines callbacks for service binding, passed to bindService()
ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
// We've bound to LocalService, cast the IBinder and get LocalService instance
Log.d(TAG,"binding htc service");
mService = (PhoneCallUIService) service;
mBound = true;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
mBound = false;
Log.d(TAG,"disconnected from htc service");
}
};
Intent intent = new Intent(context, PhoneCallUIService.class);
context.bindService(intent, mConnection, Context.MODE_PRIVATE);
if(mBound) {
Log.d(TAG,"before htc call");
mService.performAction(PhoneCallUIService.ACTION_ANSWER_CALL, 1, new Bundle());
Log.d(TAG,"after htc call");
}
else
Log.d(TAG,"the htc service not bounded");
}
}
/////////////////////////////////////////////// ////////////////////////////////////////////////
真的吃了我的脑海。请帮忙。
TNX。