我的应用程序使用AlarmManager,它自4年前开始运作.但我注意到它在某些设备上开始失败.
我很确定代码是正确的(我正在使用WakefulBroadcastReceiver,而setExactAndAllowWhileIdle用于带有Doze的设备),因为它在Nexus设备上运行良好,但在一些制造商的设备中失败(华为,小米......).
例如,华为设备有一种杀死应用程序的电池管理器,当应用程序被杀时,预定的警报会被取消.因此,在华为电池管理器中将应用程序设置为"受保护"可以解决问题.
但最近我注意到它没有使用更多的设备:小米,三星(也许它与新的"智能管理器"有关?)......似乎这种行为正在成为标准:杀死后台应用程序.
有人知道吗?是否有任何方法可以确保报警?
我正在尝试使用 Android Studio“制作项目”,但出现此错误:
任务“:myApp:processGoogleDebugManifest”执行失败。
无法获取类型为 com.android.build.gradle.tasks.ProcessMultiApkApplicationManifest 的任务“:myApp:processGoogleDebugManifest”的未知属性“manifestOutputDirectory”。
请问有什么帮助吗?
编辑:此错误发生在我更新到 gradle v6.5 和插件 v4.1.0 之后。如果我恢复到 gradle v6.1.1 和插件 v4.0.0,错误就会消失。
据我所知,在Java中我可以在正常(星期五)或短模式(星期五)获得工作日.但是,有没有办法只获得第一个字母?
我以为我可以使用"substring"获得第一个字母,但它对所有语言都不正确.例如,西班牙人的工作日是:Lunes,Martes,Miércoles,Jueves,Viernes,Sábado和Domingo,"Miércoles"的第一个字母是X而不是M,以区别于"Martes".
我正在开发一个Android应用程序,它使用我自己的REST API服务器上的数据.我想使用Firebase身份验证,因为它允许用户以非常简单的方式使用Google,Facebook,Twitter ...进行登录.
但我不确定如何使用ID令牌:
我不知道这些方法(getToken和verifyIdToken)是做什么的,并且因为它们是异步的,我担心它们会在每次调用时向Firebase服务器发出请求.所以我认为在我的每个请求中向Firebase服务器发出2个请求是不可取的...
我在Android上搜索有关SQLite的信息,并阅读了一些关于Android编程的书籍的章节,但我不知道如何在Android上正确使用SQLite.
我正在开发一个包含Activities,Services和BroadcastReceivers的应用程序,所有这些应用程序都必须在数据库中读写数据.所以我有一些问题:
SQLiteOpenHelper
实例的最佳位置在哪里?我读到了这一点,似乎最好的方法是只SQLiteOpenHelper
为所有的应用程序.SQLiteDatabase
通过调用dbHelper.getReadableDatabase()
(或getWritableDatabase
)来获取对象?我需要在每个查询上执行此操作,在每次查询后关闭它吗?我用一个MediaScannerConnection调用它SCANFILE方法,用于将图像添加到设备画廊.但是在Android 6中,当我执行它时会收到这些异常:
E/DatabaseUtils:java.lang.SecurityException异常:权限拒绝:读取com.android.providers.media.MediaProvider URI内容://媒体/外部/从PID = 22984 fs_id,UID = 10078要求android.permission.READ_EXTERNAL_STORAGE,或grantUriPermission ()
和
E/iu.UploadsManager:java.lang.SecurityException:Permission Denial:从pid = 22984读取com.android.providers.media.MediaProvider uri content:// media/external/fs_id,uid = 10078需要android.permission.READ_EXTERNAL_STORAGE,或grantUriPermission()
有帮助吗?
我的应用程序正在显示通知,当显示通知时,会播放声音.但是当我的手机处于"静音模式"时,不会播放通知.我想"覆盖"音量设置,并播放声音虽然设置了静音模式.有办法吗?
我有一个由警报调用的广播接收器(使用AlarmManager安排).在这个接收器中,我只是从数据库中查询寄存器,并启动通知.我认为当从广播接收器启动服务或活动时需要唤醒锁定,但是,如果我只想显示通知(在通知面板中),是否需要唤醒锁定?
有没有办法避免Google App Invites在发送邀请时显示Snackbar?或者我可以改变它显示的位置吗?
在Raspberry Pi上安装Android Things后,时间不正确.我的时区是GMT + 2,使用date +%Z
我看到RPi的时区是GMT.我该如何设置时区?
我已经完成了一个游戏的开发,但很烦人,有时(是的,只是有时!)当我打开它时,它会失败,我可以在 logcat 中看到这个错误:java.io.IOException: Prepare failed.: status= 0x80000000。
很奇怪,因为它是本地文件(2MB mp3文件),不知道为什么会显示IOException。而且只是有时,并非总是...
编辑:这似乎与proguard有关,因为它只发生在发布版本......