所以我遇到了一个奇怪的问题,即调用AudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI)不再触发我刚刚更新到6.0的设备上的系统卷更改.
在所有pre-6设备上,此代码按预期工作.我注意到已经弃用了setStreamVolume的AudioManager的更改,但建议的替代方法是我已经使用的...
起初我认为它可能是一个权限问题,因为MODIFY_AUDIO_SETTINGS被列为危险权限,但我已经检查过ContextCompat.checkSelfPermission(this, Manifest.Permission.MODIFY_AUDIO_SETTINGS) == PackageManager.PERMISSION_GRANTED(并且在"权限设置"页面中也没有与音频相关的权限,所以我假设不是这种情况).
我已经尝试了其他推荐的方法adjustVolume(AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI),但这也没有产生任何结果.
所以,澄清一下:
调用adjustStreamVolume/adjustVolume并且AudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)返回未更改的值,就好像它从未被调用一样.
如果有人对此有任何想法,我真的很想现在就听到它们.
编辑:
自从发布这个以来,我已经转而使用setStreamVolume(AudioManager.STREAM_MUSIC, value, AudioManager.FLAG_SHOW_UI)哪些有效,即使文档说它不再应该.
会喜欢这个想法......
编辑2:
由于我能够在另一台设备上复制,因此打开了一个问题
基本上,我遇到的问题是只显示输入幻灯片动画; 调用Activity不动画.
startActivity(intent);
overridePendingTransition(R.anim.right_in_partly, R.anim.left_out_partly);
Run Code Online (Sandbox Code Playgroud)
我知道事实上它不是动画文件,因为将exitAnimation(方法调用中的第二个参数)替换为仍然有效的并且根本没有动画的动画文件.
奇怪的是,从第二个Activity调用finish()时会出现相反的情况.
finish();
overridePendingTransition(R.anim.left_in_partly, R.anim.right_out_partly);
Run Code Online (Sandbox Code Playgroud)
调用它时,第二个Activity的退出动画显示,但第一个Activity仍然没有动画.
再次,用我们知道的工作(exitAnimation)替换enterAnimation(第一个参数)仍然没有效果,所以它绝对不是动画文件.
任何人都有任何想法,为什么会这样?我很难过......
提前致谢!
鉴于旧的 Android 库已弃用,我正在将其从 jcenter 迁移到 mavenCentral。所有实际的库模块都是用 Java 编写的,但其中一些模块的测试是用 Kotlin 编写的。
在升级(升级到 AS 4.1.3、Gradle 6.8.3)之前,生成的 POM 从未包含对kotlin-stdlib. 现在看来,应用该kotlin-android插件会导致生成的 POM 添加它,即使依赖项包含为testImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.31".
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.4.31</version>
<scope>compile</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
问题:之前生成的 POM 是否错误,因为它应该包含 kotlin 作为编译依赖项,即使它仅用于测试?
或者,我是否需要做一些特殊的事情来排除这种特定情况下的“依赖性”?如果是这样,如果在定义发布时生成 POM,我如何排除它,例如:
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
....
pom {
name = ...
licenses { }
developers { }
scm { }
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,这不是一个好的选择,我应该用 Java 重写测试吗?
值得注意的是,删除kotlin-android插件也会将其作为编译依赖项从 POM 中删除。似乎对生成AAR没有影响;它只是阻止测试运行。