Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在通话后以编程方式关闭扬声器电话,Android?_Android_Android Intent - Fatal编程技术网

如何在通话后以编程方式关闭扬声器电话,Android?

如何在通话后以编程方式关闭扬声器电话,Android?,android,android-intent,Android,Android Intent,我把底层代码放在线程中运行。它工作得很好。这是我的密码。希望它能帮助别人 Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); callIntent.setData(Uri.parse("tel:" + sharedPreferencesUtils.getStringFromSharedPreferences(KEY_SP_MOBILE_NUM

我把底层代码放在线程中运行。它工作得很好。这是我的密码。希望它能帮助别人

Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
callIntent.setData(Uri.parse("tel:" + sharedPreferencesUtils.getStringFromSharedPreferences(KEY_SP_MOBILE_NUMBER, context.getApplicationContext())));
context.getApplicationContext().startActivity(callIntent);

Thread thread = new Thread() {
    @Override
    public void run() {
        try {
            while(true) {
                sleep(300);//1000
                audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
                audioManager.setMode(AudioManager.MODE_IN_CALL);
                if (!audioManager.isSpeakerphoneOn()) {
                    audioManager.setSpeakerphoneOn(true);
                }
            }

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
};

thread.start();
请确保在清单中包含“修改音频设置”权限。

试试这个

        Thread thread = new Thread() {
            @Override
            public void run() {
                try {
                    while(true) {
                        sleep(1000);
                        audioManager.setMode(AudioManager.MODE_IN_CALL);
                        if (!audioManager.isSpeakerphoneOn())
                            audioManager.setSpeakerphoneOn(true); //or false
                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };

        thread.start();

为此,您应该在清单中添加“修改音频设置”权限。

您只需从此处复制粘贴即可:您应该在注释中为已给出的答案添加链接。Hii,我得到了此最终处理程序=新处理程序的解决方案;handler.postDelayednew Runnable{@Override public void run{audioManager=audioManager context.getSystemServiceContext.AUDIO_服务;audioManager.setModeAudioManager.MODE_在_调用中;audioManager.SetPeakerPhoneContrue;}},1000;我已经把这个代码放在处理程序中,然后从应用程序生成呼叫正在扬声器电话上进行,我们从defalut call应用程序拨打的其他呼叫正在进入正常模式,接听呼叫也进入正常模式。这工作正常。
audiomanager.setSpeakerphoneOn(false)