gpt4 book ai didi

java - 在 Android 中创建可自动启动的广播接收器

转载 作者:行者123 更新时间:2023-12-01 12:22:25 25 4
gpt4 key购买 nike

问题:

我愿意创建一个仅作为后台进程启动的应用程序,每当新消息进入设备时,它都应该将其记录到文件中或仅显示一条 toast 消息。

我阅读了很多博客并尝试按照上述步骤进行操作。但是,我继续在设备上发送消息,甚至在设备日志中也没有显示任何内容。我想在从 Froyo 到 Lollipop 的设备上运行它。所以,我不愿意使用支持 API 19 及更高版本的新 Telephony API。

list 文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.abc.test"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >



<receiver android:name=".SMSHandler">

<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

</application>

</manifest>

源文件

package com.abc.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class SMSHandler extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Toast toast = Toast.makeText(context, "message initiated",
Toast.LENGTH_LONG);
toast.show();

if (intent.getAction()
.equals("android.provider.Telephony.SMS_RECEIVED")) {
toast = Toast.makeText(context, "message received",
Toast.LENGTH_LONG);
toast.show();
}
}

}

环境:

IDE:

  • Android Studio

最低 SDK 版本:

  • 8

测试:

  • ICS 设备(索尼 Xperia U)
  • 奇巧 (MOTO G)

最佳答案

您需要添加一个 Activity ,然后运行该 Activity ,然后 BroadcastReceiver 才能工作。

更准确地说,在您的应用脱离停止状态并允许 list 注册的 BroadcastReceivers 工作之前,需要使用显式的 Intent 。最简单的方法是拥有一个启动器 Activity ,并从启动器运行该 Activity 。

要了解更多信息,请参阅 the Android 3.1 release notes 中的“对已停止的应用程序启动控件” ,以及 this blog post .

关于java - 在 Android 中创建可自动启动的广播接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578465/

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