Android HTC sense 4和HTC sense 5 - 接听来电功能无效

时间:2013-09-24 16:08:22

标签: java android android-4.2-jelly-bean htcsense sense

嗨我写的应用程序按下我的覆盖按钮来接听来电。这在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。

0 个答案:

没有答案