gpt4 book ai didi

android - 重新启动后尝试在android中重新安排以前的警报通知的代码?并登录我的手机?

转载 作者:行者123 更新时间:2023-12-03 17:23:47 26 4
gpt4 key购买 nike

我正在尝试 follow this answer但是,它在模拟器和我的手机上都不起作用,所以我对模拟器日志和手机有疑问,然后重新启动以模拟和调试
我在底部有非常有趣的注释,让我非常困惑
我正在使用 API 24 和像素 3 模拟器和真正的三星 8 手机
我做了典型的添加到 list

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <receiver android:name=".biz.alarm.BootupReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
然而,我从来没有看到这个日志语句......
public class BootupReceiver extends BroadcastReceiver {
private final static String TAG = "BootupReceiver";

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "booted. action="+action);

}
}
对于模拟,我单击播放按钮并观看我的应用程序出现。然后我按住电源按钮,当我真的只想重新启动时,它只会给我一个“关机”选项......奇怪,所以我关机了。这似乎完全退出了模拟,以至于当我在 Android Studio 的模拟器上再次单击播放时,它会记录
08/06 19:17:40: Launching 'app' on Pixel 3 API 24.
$ adb shell am start -n "app.mykeepintouch.kit/app.mykeepintouch.kit.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
...
D/MainActivity: onCreate: starting
我没有启动日志来重新注册通知。 问题1:模拟器不能正确模拟吗?
接下来是我的真机-好吧,我猜同样的事情,但也许我至少可以在手机上查看一些日志?我遇到的帖子谈到转储到 sd 卡,但我已插入 android studio,所以我认为我可以以某种方式将日志转储到 android studio?
编辑:我正在使用 the sample link在那篇文章中也是如此。我做了一个 git clone 导入项目,选择 API 24 并在 PollReceiver 中添加了一个日志。我上床 sleep 时它起作用了,今天早上运行时第二次运行没有起作用。我会在调试我想到的随机场景时添加更多信息。
奇怪的场景 1 :如果我有两个 android studio 项目打开并打开我的个人应用程序,然后在我的项目之后打开示例链接应用程序,我会看到一个 Toast“已安排警报”。但是,在该警报 5 秒后响起之前,我无法在 PollReceiver 上找到任何日志。我期待在开始时看到来自 PollReceiver 的日志,但直到 5 秒才看到。稍后再运行一次,没有产生任何日志(除了弹出的 toast 消息,所以我知道它运行了该代码……非常奇怪)。然后我向 ScheduledServiceDemoActivity 添加了一条日志消息,现在我无法像那样重现 0 个日志。
奇怪的场景 2 :我重新启动手机(或者它不断启动我的应用程序并且场景 1 继续工作)。然后我只启动示例链接应用程序,什么都没有发生。我等了 90 秒,什么也没有。
这可能就是为什么昨晚在我上床 sleep 之前它起作用的原因,就像我在场景 1 中一样。
最后的猜测:我永远无法让 PollReceiver 在启动时触发。 ScheduledServiceDemoActivity 似乎是真正的入口点,我从未在上面的代码中添加服务,因为我不想要一个……只是想被通知启动以重新安排警报。 这使我得出可能的结论 ScheduledServiceDemoActivity 是否会在启动时在某些设备上触发,而 PollReceiver 是否适用于启动时的其他设备?如果是这样,哪些模拟器可以模拟这种其他启动场景?
编辑( 我有另一个想法 )在我的三星手机上,我检查了权限,即使我在 list 中添加了这 4 行,也只有三个
<!-- So we can make a phone call out -->
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- so we can send a text -->
<uses-permission android:name="android.permission.SEND_SMS" />
<!-- So we can reschedule alarms that went off while powered off -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- read contacts so they can easily choose their friends -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
接收引导不在其中。这是问题吗?或者电话是否不会向用户列出已完成的接收启动,因为这可能会造成混淆?
谢谢,
院长

最佳答案

尝试将其添加到 list 中的 Intent 过滤器中:

<receiver android:name=".biz.alarm.BootupReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
当我在某些设备上遇到类似问题时,它对我有帮助。

关于android - 重新启动后尝试在android中重新安排以前的警报通知的代码?并登录我的手机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63293900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com