小编Vas*_*tov的帖子

如何在Android Pie和UP中以编程方式打开/关闭扬声器

与这个问题以及几年前的其他问题相同: 如何在Android 4.0中以编程方式打开/关闭扬声器

似乎Android已经改变了它的处理方式。

这是我尝试拨出电话以编程方式设置免提电话的操作。这些解决方案都无法在Android Pie上使用。虽然它们似乎在Android Nougat和Oreo上运行良好

解决方案1。

final static int FOR_MEDIA = 1;
final static int FORCE_NONE = 0;
final static int FORCE_SPEAKER = 1;

Class audioSystemClass = Class.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
setForceUse.invoke(null, FOR_MEDIA, FORCE_SPEAKER);
Run Code Online (Sandbox Code Playgroud)

2。

AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
   audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
   audioManager.setSpeakerphoneOn(true);
Run Code Online (Sandbox Code Playgroud)

3。

AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
   audioManager.setMode(AudioManager.MODE_IN_CALL);
   audioManager.setSpeakerphoneOn(true);
Run Code Online (Sandbox Code Playgroud)

4。

Thread thread = new Thread() {
    @Override
    public void run() {
        try {
            while(true) {
                sleep(1000); …
Run Code Online (Sandbox Code Playgroud)

android

7
推荐指数
3
解决办法
232
查看次数

防止在内部视图的 onTouch 时滑动 ViewPager2

我有一个里面有一个片段的 ViewPager2,

在片段中,我有一个自定义视图,其中包含涉及移动手指的某些触摸逻辑。

当内部视图拦截触摸事件时,如何防止 ViewPager 滑动?

override fun onTouchEvent(event: MotionEvent?): Boolean {
    if (event?.action == MotionEvent.ACTION_DOWN || event?.action == MotionEvent.ACTION_MOVE) {
       //Do some stuff here
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)

在滑动此视图时,视图寻呼机仍会滑动到其他页面。

android android-viewpager ontouch android-viewpager2

7
推荐指数
1
解决办法
2188
查看次数

AndroidX 导航 navigationUp 两次

我正在使用新的 AndroidX 导航框架。

我有几个片段都链接在导航链中。

片段A --> 片段B --> 片段C

FragmentC 有一个“取消”按钮,它应该让我一直回到 FragmentA。

我应该执行以下操作:
在 FragmentC 上调用该方法:

 Navigation.findNavController(view).navigateUp();
Run Code Online (Sandbox Code Playgroud)

然后在 FragmentB 上侦听一些回调并使用一些传递的参数或参数触发来自 FragmentB 的另一个 navigationUp() 函数

或者是否有一些方法可以做相当于navigateUpTwice()

android android-navigation androidx

3
推荐指数
1
解决办法
1536
查看次数