Dea*_*ler 5 android android-studio
我正在尝试遵循这个答案但是,它在模拟器和我的手机上都不起作用,所以我对模拟器日志和电话有疑问并重新启动以模拟和调试
我在底部有非常有趣的笔记,让我感到非常困惑
我正在使用 API 24 和像素 3 模拟器和真正的三星 8 手机
我做了典型的添加到清单
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)
和
<receiver android:name=".biz.alarm.BootupReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
但是我从来没有看到这个日志语句......
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);
}
}
Run Code Online (Sandbox Code Playgroud)
对于模拟,我单击播放按钮并观看我的应用程序出现。然后我按住电源按钮,当我真的只想重新启动时,它只给我一个“关机”选项......奇怪,所以我关机了。这似乎完全退出了模拟,这样当我在 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
Run Code Online (Sandbox Code Playgroud)
没有启动日志供我重新注册通知。 问题1:模拟器不能正确模拟吗?
接下来,我的真实手机——嗯,我猜也是一样的,但也许我至少可以在手机上查看一些日志?我遇到的帖子谈到转储到 sd 卡,但我已插入 android studio,所以我认为我可以以某种方式将日志转储到 android studio?
编辑:我也在使用该帖子中的示例链接。我做了一个 git clone 导入了项目,选择了 API 24 并在 PollReceiver 中添加了一个日志。它在我上床睡觉时起作用,而在我今天早上跑步时第二次跑步时不起作用。我会在调试我想到的随机场景时添加更多信息。
奇怪的场景 1:如果我打开了两个 android studio 项目并打开我的个人应用程序,然后在我的项目之后打开示例链接应用程序,我会看到一个 Toast“已安排警报”。但是,在 5 秒后警报响起之前,我无法在 PollReceiver 上找到任何日志。我期待在开始时看到 PollReceiver 的日志,但直到 5 秒才看到。此后的另一次运行没有产生任何日志(除了弹出的吐司消息,所以我知道它运行了该代码......非常奇怪)。然后我向 ScheduledServiceDemoActivity 添加了一条日志消息,现在我一次无法重现 0 个日志。
奇怪的场景2:我重新启动手机(或者它不断启动我的应用程序并且场景 1 继续工作)。然后我只启动示例链接应用程序,没有任何反应。我等了 90 秒,什么也没有。
这可能就是为什么它在昨晚我睡觉前像在场景 1 中那样起作用的原因。
最后的猜测:我永远无法在启动时启动 PollReceiver。ScheduledServiceDemoActivity 似乎是真正的切入点,我从来没有在上面的代码中添加过服务,因为我不想要一个......只是想收到被启动重新安排警报的通知。 这让我得出一个可能的结论,ScheduledServiceDemoActivity 是否在启动时在某些设备上触发,而 PollReceiver 在启动时用于其他设备?如果是这样,哪些模拟器可以模拟其他启动场景?
编辑(我有另一个想法)在我的三星手机上,我检查了权限,即使我在清单中添加了这 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" />
Run Code Online (Sandbox Code Playgroud)
接收引导不在那里。这是问题吗?或者手机不会向用户列出已完成的接收启动,因为这可能会造成混淆?
谢谢,院长
尝试将其添加到清单中的意图过滤器中:
<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>
Run Code Online (Sandbox Code Playgroud)
当我在某些设备上遇到类似问题时,它对我很有帮助。
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |