3

電話をかけ、一定時間後に電話を切るコードがあります。両方の SIM から電話をかけることができましたが (2 番目の SIM には異なる方法を使用)、Android は 2 番目の SIM がオフフックであるかどうかを検出できないようです。

次のコードを見てください。

Class<?> c = Class.forName(telMgr.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService = (ITelephony)m.invoke(telMgr);
if (telephonyService.isOffhook()) { // DO SOMETHING }

最初の SIM が電話をかけた場合、私はisOffHook()になりますtrueが、2 番目の SIM からは電話が進行中ですが、私は になりfalseます。

両方の SIM がオフフックかどうかを検出する方法はありますか? ありがとう

4

1 に答える 1

1

コメントありがとうございますが、解決策を見つけました。ITelephonyから「インスタンス」を取得する古い方法を使用するのではなくTelephonyManager(古いバージョンでこのトリックを使用したため、他の方法で問題が発生していました)、 を呼び出して直接TelephonyManager使用ます。コードサンプル:getCallState()

TelephonyManager telMgr = (TelephonyManager)(this.getMainContext()
                        .getSystemService(Context.TELEPHONY_SERVICE));
/* Making a call... */
if (telMgr.getCallState() != TelephonyManager.CALL_STATE_OFFHOOK) { /* Do your stuff */ }

シンプルでわかりやすい。現在の 5.1 Lollipop バージョンで作業しています。

于 2015-06-24T14:11:24.867 に答える