我有一个应用程序,当在手机上使用时会显示扬声器切换按钮.拨动开关切换手机耳机和扬声器之间的音频路由.但是,当应用程序在平板电脑(或任何没有耳机的设备)上运行时,我想删除切换按钮,因为所有音频都通过免提电话发送.
理想情况下,我想使用某种isEarpiecePresent()调用,或者在某些配置对象上检查一个标志来查找此信息,但我在API中找不到任何类型的那种.
我试图通过调用AudioManager.setSpeakerphoneOn(false),然后检查来解决这个问题AudioManager.isSpeakerphoneOn(),希望它仍然会返回true,我可以关闭它.false即使音频仍然通过扬声器路由,系统也会返回.
我目前正在考虑检查电话功能,即使这不完全适合.还有其他想法吗?
我有一个用一堆精灵渲染的OpenGL场景,我想自动为它们添加阴影.这是一张显示我的意思的图片:

场景使用正交投影,精灵是纹理四边形,我使用深度缓冲区从前到后绘制它们.我正在使用OpenGL ES 2.0,但是来自iOS或非ES世界的想法也会受到赞赏.我在脑子里想了几个关于如何解决这个问题的想法,我想知道哪个最有希望.
我不想对外部纹理进行任何阴影处理,因为我在不同的比例下使用相同的精灵纹理,并且预先烘焙的阴影会不自然地缩放.
那么这些比其他更好吗?还有其他我没想过的选择吗?谢谢!
我的应用程序只需要非常粗略的位置数据,所以我最初设置我的清单权限ACCESS_COARSE_LOCATION,并为其设置位置监听器NETWORK_PROVIDER.这给了我所需的粗略位置估算,但只有Google位置服务开启.
我期待如果用户只启用了GPS,我仍然可以得到他们位置的粗略估计.但似乎GPS_PROVIDER是通过使用ACCESS_FINE_LOCATION权限从中获取任何位置信息的唯一方法.
那么,只有启用GPS,应用才能获得位置信息,除非获得ACCESS_FINE_LOCATION许可吗?换句话说,GPS_PROVIDER如果应用只有ACCESS_COARSE_LOCATION权限,则无法发送粗略的位置估算值?
我有一个应用程序,动态生成6到100个小位图,供用户在给定的会话中在屏幕上移动.我现在生成它们onCreate并将它们存储到SD卡中,以便在更改方向后我可以将它们从外部存储器中取出并再次显示它们.但是,这需要花费时间(加载),并且我希望在生命周期更改之间保留位图引用,以便更快地访问.
我的问题是,是否有更好的地方存储我生成的位图?我正在考虑在我的基本活动中创建一个静态存储库,当应用程序从内存中完全删除时,只需要重新加载(关闭,其他应用程序需要资源,30分钟重启等).
理想情况下,我希望用户能够退回标题屏幕,单击"恢复"按钮,然后onCreate我只能访问那些驻留位图引用,而不必再次从存储中加载它们.出于这个原因,我认为不是Activity.onRetainNonConfigurationInstance我需要的.
或者,有没有比我正在做的或我描述的计划更好的方法来处理多个生成的位图?