与这个问题以及几年前的其他问题相同: 如何在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) 我有一个里面有一个片段的 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)
在滑动此视图时,视图寻呼机仍会滑动到其他页面。
我正在使用新的 AndroidX 导航框架。
我有几个片段都链接在导航链中。
片段A --> 片段B --> 片段C
FragmentC 有一个“取消”按钮,它应该让我一直回到 FragmentA。
我应该执行以下操作:
在 FragmentC 上调用该方法:
Navigation.findNavController(view).navigateUp();
Run Code Online (Sandbox Code Playgroud)
然后在 FragmentB 上侦听一些回调并使用一些传递的参数或参数触发来自 FragmentB 的另一个 navigationUp() 函数
或者是否有一些方法可以做相当于navigateUpTwice()