BroadcastReceiver是一个响应系统范围广播公告的Android组件。
Android:从广播接收器访问 ViewModel 方法的最佳方式是什么?
我有一个带有 Refresh() 方法的视图模型,它访问数据库并更新 UI。每当飞行模式发生变化时,我都需要调用此方法。 这个怎么做? 广播接收器的实现: 班级
我广泛搜索但没有找到这个问题的答案: 是否可以通过广播接收器更改 Jetpack compose 用户界面中的变量?
我是 kotlin 新手,正在尝试制作一个课程药物提醒应用程序。 当我的 AlarmReceiver 将新名称添加到 currentAlerts 流中时,我的虚拟机不会做出反应。 唯一一次‘做’
我正在我的应用程序中广播意图并使用广播接收器接收它。我可以处理广播和接收。没问题。但是,我想完全注册接收者
从 android 12 开始,不再可能从 BroadcastReceiver 和服务启动 Activity,根据文档,这称为通知蹦床限制,现在我们
我正在尝试从 Android 中的广播接收器检测 SIM 状态的变化(在双 SIM 卡场景中 - 单 SIM 卡活动/不活动,双 SIM 卡活动/不活动)。 我用谷歌搜索找到解决方案,但它们是
GeoFencing:BroadcastReceiver 无法触发
我尝试从Android开发人员运行此应用程序:https://developer.android.com/codelabs/advanced-android-kotlin-training-geofencing?authuser=2#0 正在添加地理围栏,但什么也没有
我只是想知道是否可以在应用程序清单中注册一个检测屏幕开/关的广播接收器。 我不喜欢可编程方法的原因是它需要...
我的警报管理器有问题。我的应用程序正在发送有关膳食的通知,我有 4 顿饭(早餐、午餐、晚餐、小吃)和时间选择器。如果我设定一顿饭的时间,它就会发送
由于 Android 服务和 AlarmManager 应用程序崩溃
我正在尝试创建一个将在后台运行的服务,并每 10 秒在状态栏中放置一个通知(仅用于测试)。 我在这里查看了很多帖子,但仍然找不到帮助...
BroadcastReceiver 未在 Android 中的同一可组合项中接收 Intent
我正在使用 Jetpack Compose 对 Android API 26 进行一些实验,但在同一可组合项中发送和接收广播时遇到了问题。 这是我的接收器的代码: 班级
Android Activity 未找到异常和 BroadcastReceiver
我的程序中有一些功能我想公开,但我似乎没有让接收器工作。 我尝试了清单/接收器: 我的程序中有一些功能我想公开,但我似乎没有让接收器工作。 我尝试了清单/接收器: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.nohkumado.intstringsynchro" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:resizeableActivity = "true"> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".IntStringReceiver" android:exported="true" android:enabled="true"> <intent-filter> <action android:name="com.nohkumado.intstringsynchro.EDIT_STRINGXML"/> </intent-filter> <intent-filter> <action android:name="com.nohkumado.intstringsynchro.ADD_STRINGXML"/> <action android:name="com.nohkumado.intstringsynchro.DEL_STRINGXML"/> <data android:mimeType="text/plain"/> </intent-filter> </receiver> </application> </manifest> package com.nohkumado.intstringsynchro; import android.content.*; import android.widget.*; import android.util.*; public class IntStringReceiver extends BroadcastReceiver { public static final String TAG = "Receiver"; @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Intent Detected:"+intent.getAction(), Toast.LENGTH_LONG).show(); switch (intent.getAction()) { case "com.nohkumado.intstringsynchro.EDIT_STRINGXML": { Intent intentStartMainActivity = new Intent(context, MainActivity.class); intentStartMainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intentStartMainActivity); break; } case("com.nohkumado.intstringsynchro.ADD_STRINGXML"): { Toast.makeText(context, "add token "+intent.getExtras(), Toast.LENGTH_LONG).show(); break; } case("com.nohkumado.intstringsynchro.DEL_STRINGXML"): { Toast.makeText(context, "del token "+intent.getExtras(), Toast.LENGTH_LONG).show(); break; } default: { Toast.makeText(context, "no idea what to do with "+intent, Toast.LENGTH_LONG).show(); Log.d(TAG,"no idea what to do with "+intent); }//default }// switch (intent.getAction()) }// public void onReceive(Context context, Intent intent) }//class 正如所指出的,我错误地在接收器部分放了一个 <category android:name="android.intent.category.DEFAULT"/> 这意味着在最好的情况下,只有第一个意图过滤器被触发,而不是其他......删除了它 现在作为另一个应用程序,我创建了一个小型测试器,它只有 3 个按钮来触发我想作为意图传递的 3 个操作,因为这只是一个小测试,所以我在布局文件中绑定了 onClick 事件: package com.nohkumado.istester; import android.app.*; import android.content.*; import android.net.*; import android.os.*; import android.view.*; import android.widget.*; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }//onCreate public void callIntString() { callIntString(null); } public void callIntString(View but) { Toast.makeText(this, "call int string", Toast.LENGTH_SHORT).show(); String name="com.nohkumado.intstringsynchro.EDIT_STRINGXML"; Intent callIt = new Intent(name); try { startActivity(callIt); } catch (ActivityNotFoundException e) { Toast.makeText(this, "no available activity"+callIt, Toast.LENGTH_SHORT).show(); //callGooglePlayStore(); } } private void callGooglePlayStore() { Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.android.vending"); ComponentName comp = new ComponentName("com.android.vending", "com.google.android.finsky.activities.LaunchUrlHandlerActivity"); // package name and activity launchIntent.setComponent(comp); launchIntent.setData(Uri.parse("market://details?id=com.nohkumado.intstringsynchro")); startActivity(launchIntent); }//callIntString } 这是我的理解问题,我应该尝试 sendBroadcast(launchIntent);而不是使用 startActivity; 好的,结束这个...... 首先,我并不完全意识到清单中的活动合约为任何人调用此活动提供了一种方式。 接下来,我有一个特定的应用程序,我想向其他人开放,这意味着编辑 Android 项目的 strings.xml 文件,并且我想提出相当于 REST API 的方案,包括 LIST/EDIT、ADD、DEL。 现在,如果我们处理活动,我认为从外部处理我的活动的最简单方法是这样的: Intent call = pm.getLaunchIntentForPackage("com.nohkumado.intstringsynchro"); 随后进行一些 putExtra 调用,以插入标识特定操作的令牌以及要执行的最终值...... 由startActivity完成 这样,默认活动就会启动,无论其名称和传递的意图如何,都可以在 MainActivity 的 onCreate 方法中读取。 为了实现我的 REST API,我尝试为我的应用程序创建 3 个入口点,每个入口点对应一种类型的访问,只有 LIST/EDIT 启动 UI,另外 2 个入口点生成一系列在后台执行工作的异步任务。但这意味着最终用户必须知道要处理哪些活动。 所以我恢复使用意图的 putExtra 和令牌/值对来实现我的类似 REST 的 API...... 为了教育目的,我尝试了广播机制的方法,优点是在客户端似乎没有崩溃的风险,不需要捕获 ActivityNotFound 异常,并且,从我的代码中的拼写错误,我注意到意图活动不需要绑定到我的实际应用程序,我可以选择任何我想要的名称。 为此,在客户端我需要: String name="com.nohkumado.intstringsynchro.EDIT_STRINGXML"; Intent callIt = new Intent(name); sendBroadcast(callIt); 但在我的应用程序方面,我需要实现一个完整的 BroadCastreceiver.... 另一方面,这个机制极其缓慢,让整个操作有一种很迟缓的感觉 如果这次我做对了,请纠正我,如果有更好的方法来实现我向其他人建议这些列表/编辑、添加和删除功能的目标,我愿意接受建议? 报告返回未发现活动异常 显然,对于操作字符串 <intent-filter>,您没有包含 com.nohkumado.intstringsynchro.EDIT_STRINGXML 的活动。你的问题清单中肯定没有这样的活动。您在问题中的清单有一个 <receiver> 元素,其中有一个奇怪的 <intent-filter>,其中包括该操作。但是,<receiver> 和 <activity> 不是同一件事。 更改代码以发送广播,或更改代码以使用该操作字符串进行活动。
Android 15 Boot Completed 接收器无法启动前台服务
我正在开发一款 Android 应用程序,该应用程序之前针对 Android 14(API 级别 34),并利用 BOOT_COMPLETED 广播接收器来启动某些前台服务。 随着 Andro 的更新...
错误注册的广播接收器(play.google 发布概述,问题不断显示)
我有点困惑为什么发布概述仍然报告此错误 当所有的 registerReceiver 都已被修改以避免违规时。由于我的版本配置为, 目标:34
使用 Firebase Auth 进行身份验证时,我想自动输入通过短信接收的代码。我能够接收短信并手动完成身份验证过程,但是当我使用 SmsRetriever 时,该应用程序
无法解析声明 android.support.v4.content.LocalBroadcastManager 上的 import LocalBroadcastManager;
我在将 Eclipse 项目导入 Android Studio 时遇到此错误。它显示了一条建议将库 Gradle: com.android.support:support-core-utils-27.1.1 添加到类路径。我已经添加了图书馆...
我正在编写一个非常简单的测试Android应用程序,它可以发现蓝牙设备并将其显示在屏幕上。该应用程序在 Android 9 上正常运行,但不适用于...
在应用程序关闭时,通过通知中的操作从 RoomDB 中删除对象
所以我正在创建一个任务应用程序,用户可以在其中添加和删除任务,我提供了此选项以在 4 小时后通过通知提醒任务。该通知有一个“完成”操作,
这应该是显而易见的,但我找不到解决方案。很多人都问过这个问题,答案通常是切换到上下文注册的接收器。我有无障碍服务
当我尝试在 Play 商店上发布我的应用程序时,但我在广播接收器中收到意图重定向错误。这是相关代码。 类 SmsBroadcastReceiver : BroadcastReceiver() { ...