0

csipsimple バージョン 1915 に取り組んでいます。4.4.2 未満の Android デバイスでは正常に動作します。ローカルネットワークで誰かに電話するには、この方法があります

private void broadCastAndroidCallState(String state, String number) {
    //Android normalized event
    Intent intent = new Intent(ACTION_PHONE_STATE_CHANGED);
    intent.putExtra(TelephonyManager.EXTRA_STATE, state);
    if (number != null) {
        intent.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, number);
    }
    intent.putExtra(pjService.service.getString(R.string.app_name), true);
    pjService.service.sendBroadcast(intent,android.Manifest.permission.READ_PHONE_STATE);
}

ただし、Android バージョン 4.4.2 では動作しません。電話をかけようとすると、クラッシュします。次のようにコードを変更しました

private void broadCastAndroidCallState(String state, String number) {
        // Android normalized event
        if(!Compatibility.isCompatible(19)) {
            // Not allowed to do that from kitkat
            Intent intent = new Intent(ACTION_PHONE_STATE_CHANGED);
            intent.putExtra(TelephonyManager.EXTRA_STATE, state);
            if (number != null) {
                intent.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, number);
            }
            intent.putExtra(pjService.service.getString(R.string.app_name), true);
            pjService.service.sendBroadcast(intent, android.Manifest.permission.READ_PHONE_STATE);
        }
    }

これを変更すると、アプリケーションはクラッシュしませんが、何も聞こえません。これで私を助けてください。

4

1 に答える 1