Android短信通知问题

2024-02-21

我正在尝试学习 android,所以我正在制作一些应用程序来使用它。我现在正在做的一个问题,我正在尝试制作一个短信通知应用程序,但它总是在模拟器中强制关闭。这是我的代码

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;

public class Sms extends BroadcastReceiver {

    static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";

    @Override
    public void onReceive(Context arg0, Intent arg1) {

           NotificationManager mNotificationManager = (NotificationManager) arg0.getSystemService(Context.NOTIFICATION_SERVICE);
            if (arg1.getAction().equals(ACTION)) {

                StringBuilder sb = new StringBuilder();
                String from = new String();
                String body = new String();

                Bundle bundle = arg1.getExtras();
                if (bundle != null) {
                    Object[] pdus = (Object[]) bundle.get("pdus");
                    for (Object pdu : pdus){
                    SmsMessage messages = SmsMessage.createFromPdu((byte[]) pdu);
                    sb.append(messages.getDisplayOriginatingAddress());
                    from = messages.getDisplayOriginatingAddress();
                    sb.append(messages.getDisplayMessageBody());
                    body= messages.getDisplayMessageBody();

                    //Log.i(LOG_TAG, "[SMSApp] onReceiveIntent: " + sb);
                    //abortBroadcast();
                    }// end for
                }//end if

                int icon = R.drawable.icon;
                CharSequence tickerText = from + ": " + body;
                long when = System.currentTimeMillis();

                Notification notification = new Notification(icon, tickerText, when);
                CharSequence contentTitle = "New SMS Message";
                CharSequence contentText = sb.toString();
                Intent notificationIntent = new Intent();
                PendingIntent contentIntent = PendingIntent.getActivity(arg0, 0, notificationIntent, 0);

                notification.setLatestEventInfo(arg0, contentTitle, contentText, contentIntent);
                notification.vibrate = new long[] { 100, 250, 100, 500};
                notification.flags |= Notification.FLAG_AUTO_CANCEL;

                mNotificationManager.notify(1, notification);
            }//end if

    }
}

这是我的 manifest.xml 文件

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.froyo"
      android:versionCode="1"
      android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.RECEIVE_SMS" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".FroyoTest"
                  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=".Sms">
            <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>  

    </application>

        <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
</manifest>

我不明白出了什么问题,因为它每次都会强制关闭

这是 logcat 错误

02-02 11:35:46.896: ERROR/System(66): Failure starting core service
02-02 11:35:46.896: ERROR/System(66): java.lang.SecurityException
02-02 11:35:46.896: ERROR/System(66):     at android.os.BinderProxy.transact(Native Method)
02-02 11:35:46.896: ERROR/System(66):     at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
02-02 11:35:46.896: ERROR/System(66):     at android.os.ServiceManager.addService(ServiceManager.java:72)
02-02 11:35:46.896: ERROR/System(66):     at com.android.server.ServerThread.run(SystemServer.java:184)
02-02 11:36:09.847: ERROR/ActivityManager(66): ANR in com.android.settings
02-02 11:36:09.847: ERROR/ActivityManager(66): Reason: Broadcast of Intent {           act=android.intent.action.CLOSE_SYSTEM_DIALOGS     cmp=com.android.settings/.widget.SettingsAppWidgetProvider (has extras) }
02-02 11:36:09.847: ERROR/ActivityManager(66): Load: 2.95 / 0.74 / 0.24
02-02 11:36:09.847: ERROR/ActivityManager(66): CPU usage from 7048ms to 569ms ago:
02-02 11:36:09.847: ERROR/ActivityManager(66):   app_process: 52% = 39% user + 13% kernel / faults: 2461 minor
02-02 11:36:09.847: ERROR/ActivityManager(66):   system_server: 46% = 28% user + 17% kernel / faults: 704 minor 3 major
02-02 11:36:09.847: ERROR/ActivityManager(66):   ronsoft.openwnn: 40% = 25% user + 15% kernel / faults: 3986 minor 6 major
02-02 11:36:09.847: ERROR/ActivityManager(66):   ndroid.launcher: 26% = 14% user + 11% kernel / faults: 3701 minor 3 major
02-02 11:36:09.847: ERROR/ActivityManager(66):   m.android.phone: 25% = 13% user + 12% kernel / faults: 3322 minor 7 major
02-02 11:36:09.847: ERROR/ActivityManager(66):   ndroid.settings: 19% = 9% user + 10% kernel / faults: 3007 minor 7 major
02-02 11:36:09.847: ERROR/ActivityManager(66):   bootanimation: 10% = 5% user + 4% kernel
02-02 11:36:09.847: ERROR/ActivityManager(66):   sh: 1% = 0% user + 0% kernel / faults: 118 minor
02-02 11:36:09.847: ERROR/ActivityManager(66):   qemud: 0% = 0% user + 0% kernel
02-02 11:36:09.847: ERROR/ActivityManager(66): TOTAL: 100% = 65% user + 34% kernel
02-02 11:36:32.439: ERROR/HierarchicalStateMachine(66): TetherMaster - unhandledMessage: msg.what=3
02-02 11:37:48.610: ERROR/AndroidRuntime(278): FATAL EXCEPTION: main
02-02 11:37:48.610: ERROR/AndroidRuntime(278): java.lang.RuntimeException: Unable to start receiver com.example.froyo.Sms: java.lang.SecurityException: Requires VIBRATE permission
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2821)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.ActivityThread.access$3200(ActivityThread.java:125)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.os.Looper.loop(Looper.java:123)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.ActivityThread.main(ActivityThread.java:4627)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at java.lang.reflect.Method.invokeNative(Native Method)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at java.lang.reflect.Method.invoke(Method.java:521)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at dalvik.system.NativeStart.main(Native Method)
02-02 11:37:48.610: ERROR/AndroidRuntime(278): Caused by: java.lang.SecurityException: Requires VIBRATE permission
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.os.Parcel.readException(Parcel.java:1247)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.os.Parcel.readException(Parcel.java:1235)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.NotificationManager.notify(NotificationManager.java:110)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.NotificationManager.notify(NotificationManager.java:90)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at com.example.froyo.Sms.onReceive(Sms.java:51)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2810)
02-02 11:37:48.610: ERROR/AndroidRuntime(278):     ... 10 more
02-02 11:37:54.500: ERROR/ContactsProvider(172): Cannot determine the default account for contacts compatibility
02-02 11:37:54.500: ERROR/ContactsProvider(172): android.accounts.AuthenticatorException: bind failure
02-02 11:37:54.500: ERROR/ContactsProvider(172):     at android.accounts.AccountManager.convertErrorToException(AccountManager.java:1433)
02-02 11:37:54.500: ERROR/ContactsProvider(172):     at android.accounts.AccountManager.access$400(AccountManager.java:134)
02-02 11:37:54.500: ERROR/ContactsProvider(172):     at android.accounts.AccountManager$BaseFutureTask$Response.onError(AccountManager.java:1338)
02-02 11:37:54.500: ERROR/ContactsProvider(172):     at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69)
02-02 11:37:54.500: ERROR/ContactsProvider(172):     at android.os.Binder.execTransact(Binder.java:288)
02-02 11:37:54.500: ERROR/ContactsProvider(172):     at dalvik.system.NativeStart.run(Native Method)

添加振动权限修复了它

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android短信通知问题 的相关文章

随机推荐

  • 我们如何重写 EditText 中的 getText 方法?

    我在 MyEditText 类中重写了此方法 Override public Editable getText Editable s Editable super getText s toString replace trim return
  • 调整元素大小会触发窗口的调整大小事件

    看起来 当调整 HTML 元素的大小时 窗口的调整大小事件也会被触发 由于我想在调整元素大小时和调整窗口大小时执行不同的逻辑 是否有一种非黑客的方法来处理这个问题 http jsfiddle net CPUwW 1 http jsfiddl
  • 在此服务器上找不到请求的 URL /login

    我正在尝试在我的计算机上设置本地 WP 环境 我的 htaccess 文件 与 index php 文件位于同一文件夹中 如下所示 BEGIN WordPress
  • 使用图像处理检测近水平线

    有没有办法使用opencv来检测接近水平的线 我对其中提到的一些概念感到困惑OpenCV中如何检测线条 https stackoverflow com questions 45322630 how to detect lines in op
  • 如何在Python中对时间序列数据创建线性回归预测

    我需要能够创建一个 python 函数 用于基于线性回归模型进行预测 并带有时间序列数据的置信带 该函数需要接受一个参数来指定预测的范围 例如 1 天 7 天 30 天 90 天等 根据参数 需要使用置信带创建 Holt Winters 预
  • 将 UIImage 设置为 UIBarButton 项

    我似乎无法向此 UIBarButtonItem 添加图像 而不会在触摸时崩溃 UIBarButtonItem backButton UIBarButtonItem alloc initWithTitle Back style UIBarBu
  • Go 中的 Getter 和 Setter 约定

    Case A不遵循 Getter Setter 约定 人类 人类 go package human type Human interface GetName string SetName name string type Person st
  • “时间戳”的默认值无效

    我的数据库出现错误 我遇到无效的时间戳默认值 这是我的数据库 CREATE TABLE IF NOT EXISTS post id int 11 NOT NULL text varchar 10000 NOT NULL threadId i
  • iPhone 和 Mac 之间的通信

    我计划创建一个应用程序 从 iPhone 获取数据并将其发送到 Mac 上的另一个应用程序 陀螺仪数据也将被发送 我假设这最好通过蓝牙连接来完成 有人可以给我一些关于我应该如何构建应用程序或者是否可能的信息吗 我想说实现这一点的最理想方法是
  • 如何根据最小样本量在 R 中对数据框进行子集化

    假设您有一个包含两个因素级别的数据框 如下所示 Factor1 Factor2 Value A 1 0 75 A 1 0 34 A 2 1 21 A 2 0 75 A 2 0 53 B 1 0 42 B 2 0 21 B 2 0 18 B
  • 尝试获取 Pinterest 访问令牌时出现错误

    我的问题类似到这个 https stackoverflow com questions 38070424 how to get an pinterest access token我已遵循尝试获取 Pinterest 访问令牌的每一步 htt
  • 我们如何使用 Spacy minibatch 和 GoldParse 来使用 BILUO 标记方案训练 NER 模型?

    我对 spacy ner 模型的输入数据位于BILUO标记方案 我希望使用相同的作为某些要求的一部分 当我尝试在没有小批量的情况下简单地训练模型时 它工作得很好 注释部分 但我无法弄清楚如何在这里使用 minibatch 和 GoldPar
  • 无法使用 Web Compiler 2015 编译嵌套的 less 文件

    好吧 当我为 Visual Studio 2015 安装 Web Essentials 2015 时 我感到非常惊讶 因为它不再包含 less 编译器 Web Essentials 2015 不再包含捆绑和缩小 JS CSS 和 HTML
  • 仅返回elasticsearch原生查询Java api中的特定字段

    我正在构建一个本机查询 但我只想返回某些字段 所有这些字段都保存在父字段中 我想我正在寻找相当于 REST API source 的 QueryBuilders 或 NativeSearchQueryBuilder 这是一个代码示例 Nat
  • 使用 HTML 在 MVC 中提交表单

    我有一个使用 MVC5 和 C 的 Web 应用程序 在此应用程序中 我有一个带有一个下拉列表和一个提交按钮的表单 如下所示
  • Weblogic 无法找到具有“正确”JNDI 名称的资源适配器进行绑定

    我正在尝试将消息驱动 bean 与 Weblogic 10 3 5 上的 Oracle JCA 文件适配器 包含在 SOA 套件中 绑定 这样当有任何 txt 文件移动到特定目录时我的 MDB 就能收到通知 启动支持 SOA 功能的 Web
  • 如何使用password_hash注册并登录

    我试图弄清楚如何在注册和登录系统上使用password hash 目前我正在使用这样的password hash来注册我的用户 pass POST Pass hashed password password hash pass PASSWO
  • Tomcat 活动线程堆积并导致服务器停顿

    我们的生产服务器 apache tomcat 7 0 6 遇到了这个问题 该服务器正在运行使用 MySQL 作为数据库的 Spring JPA Hibernate 应用程序 在此问题期间 服务器变得缓慢 在一分钟内变得无响应 活动 tomc
  • 上传一个sqlite文件

    我正在使用 AFNetworking 尝试上传文件 void uploadFile NSArray paths NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDo
  • Android短信通知问题

    我正在尝试学习 android 所以我正在制作一些应用程序来使用它 我现在正在做的一个问题 我正在尝试制作一个短信通知应用程序 但它总是在模拟器中强制关闭 这是我的代码 import android app Notification imp