Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid sms notification problem
    primarykey
    data
    text
    <p>I am trying to learn android so i am making some apps to play around with to get use to it. I am having a problem with one i am doing now, I am trying to make a sms notification app but it always force closes in the emulator. here is my code</p> <pre><code>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 } } </code></pre> <p>and here is my manifest.xml file</p> <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.froyo" android:versionCode="1" android:versionName="1.0"&gt; &lt;uses-sdk android:minSdkVersion="8" /&gt; &lt;uses-permission android:name="android.permission.RECEIVE_SMS" /&gt; &lt;application android:icon="@drawable/icon" android:label="@string/app_name"&gt; &lt;activity android:name=".FroyoTest" android:label="@string/app_name"&gt; &lt;intent-filter&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;/activity&gt; &lt;receiver android:name=".Sms"&gt; &lt;intent-filter&gt; &lt;action android:name="android.provider.Telephony.SMS_RECEIVED" /&gt; &lt;/intent-filter&gt; &lt;/receiver&gt; &lt;/application&gt; &lt;uses-permission android:name="android.permission.RECEIVE_SMS" /&gt; &lt;uses-permission android:name="android.permission.READ_SMS" /&gt; &lt;uses-permission android:name="android.permission.WRITE_SMS" /&gt; &lt;uses-permission android:name="android.permission.SEND_SMS" /&gt; &lt;/manifest&gt; </code></pre> <p>I dont understand what is wrong as it force closes every time</p> <p>here is the logcat errors </p> <pre><code>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) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload