Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • Henry Addo 6:48 am on June 20, 2014 Permalink | Reply  

    SMSSync V2.6 beta Released 

    We are pleased to announce the release of SMSSync v2.6 beta This release includes several fixes to issues with previous versions and minor features . Here’s a breakdown of what has been improved and fixed:


    • Replaced Action Bar Sherlock library with ActionBarCompat support library.
    • Upgraded Google Analytics library to V3.
    • Replaced the dropdown widget which is used for setting the frequencies for the schedulers with a time picker widget. Now you can set any time for the schedulers and not restricted to the predefined ones.
    • Now Task messages appear in the pending tray before they are attempted to be sent as SMS. This makes it possible to automatically or manually processed them when they fail to be sent as SMS.
    • Now sent and delivered SMS status codes are processed. You will know why a message failed to be sent, when a message is successfully sent and when possible, if a messages was delivered.
    • Action Bar Contextual Menu now has ‘selected’ appended to the selection count label. Makes reading the count more meaningful.
    • Added KitKat, Android 4.4.x support. Now you can set SMSSync as your default messaging app.

    Bug fixes:

    • Fixed duplicate call to ‘readLogs @Produce’ function which causes the application to crash unexpectedly.
    • Fixed issues with configured secret key not able to match with the one set on the server when it has spaces.
    • Fixed issue with app crashing on some devices when checking for a connection before attempting a sync process after the device has finished booting.

    This release wouldn’t have come sooner if it hadn’t be the huge efforts of our community. Special thanks goes out to SolDevelo team for working on  the features and bug fixes for this release and also to the MedicMobile team for putting us in touch with them.

    As always, thank you the community for your continued contributions through bug reports, feature request and code contributions

    If you’re on earlier version of SMSSync, head on over to the Google play store and get updated to this latest version. You can also scan the QR code below to install it on your Android device.

    We welcome feedback, questions, bug reports to this release and suggestions for enhancement to future releases. You can always reach out to us via our github issues page, Forums, dev mailing list or IRC, #ushahidi or our Google+ page

  • Henry Addo 7:35 am on February 15, 2014 Permalink | Reply
    Tags: , kitkat, , smssync   

    Android 4.4+ SMS API Changes 

    It been a while since KitKat was released to the wild. There have been huge improvements to the Android platform. This means new and broken APIs have been shipped. There have been tremendous changes in the SMS API more so a pain to work with as a developer(the documentation on the changes aren’t good and clear enough) but as a user, security wise, the changes are great. If you’re a developer and you’ve some sort of SMS based app, you surely have to make changes to your code to get your app to behave sanely on KitKat(v4.4) and beyond(v.4.4+).

    As the main maintainer of SMSSync (there are volunteer maintainers as well), I have successfully ported it to work on both v4.4+ and pre-v4.4 releases. I’m going to share what I have come to understand with the changes in the SMS API.

    Receive and Send SMS

    To receive SMS with the API changes, you’ll have to declare in your manifest a broadcast receiver which has the intent-filter android.provider.Telephony.SMS_DELIVER and must also require the BROADCAST_SMS permission. With pre kitkat releases, you don’t need the intent-filter SMS_DELIVER and the BROADCAST_SMS permission. To support both v4.4+ and pre-v4.4 releases, this is what I did. As they say, code speak louder than words.

    Make App Default SMS app

    If you want your app to be listed as an SMS app so it can be configured(from system settings) to be the default SMS app on the phone, then you have to implement these in your manifest file. All four actually.

            <!-- BroadcastReceiver that listens for incoming SMS messages -->
            <receiver android:name=".SmsReceiver"
                    <action android:name="android.provider.Telephony.SMS_DELIVER" />
            <!-- BroadcastReceiver that listens for incoming MMS messages -->
            <receiver android:name=".MmsReceiver"
                    <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
                    <data android:mimeType="application/vnd.wap.mms-message" />
            <!-- Activity that allows the user to send new SMS/MMS messages -->
            <activity android:name=".ComposeSmsActivity" >
                    <action android:name="android.intent.action.SEND" />                
                    <action android:name="android.intent.action.SENDTO" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.BROWSABLE" />
                    <data android:scheme="sms" />
                    <data android:scheme="smsto" />
                    <data android:scheme="mms" />
                    <data android:scheme="mmsto" />
            <!-- Service that delivers messages from the phone "quick response" -->
            <service android:name=".HeadlessSmsSendService"
                     android:exported="true" >
                    <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <data android:scheme="sms" />
                    <data android:scheme="smsto" />
                    <data android:scheme="mms" />
                    <data android:scheme="mmsto" />

    If your app say doesn’t support MMS you still have to declare dummy broadcast receiver class( the classs shouldn’t necessarily have to exist ) for it otherwise the app will not show up in the default SMS app list. The reason behind this is, Android expect your SMS app to implement all of these features if you’re asking your users to switch from the stock Messaging app to your SMS app. You should consider warning your users about missing features when they attempt to switch your app to be the default SMS app. This way they don’t expect all the core features from the stock Messaging app.

    Making your app the default SMS app gives it access to the SMS Provider so you can write to it.

    Also the limit for sending SMS has been reduced from 100 SMS per 1 hour to 30 SMS per 30 minutes on Android 4.x devices.

    • subhrata Hotta 4:53 am on August 17, 2014 Permalink

      Hey hi,
      your above code is nice,but whenever i am trying to copy your code in my manifest “android:enabled=”@bool/is_pre_kitkat” ” is showing error,i don’t know how to fix this,can you please help id is “” .

      Thanks and Regards
      Subhrata Hotta.

    • Sanya 2:25 pm on October 27, 2014 Permalink

      I’m having the same issue though I think you have defined boolen variables to save whether it’s kitkat or not. I ve been searching for this particular method of accessing a variable from manifest file but with no luck. Could you please elaborate how exactly is this method carried out? My application’s development is stuck because of this tiny issue. Please help!

    • Lawrence 3:45 am on May 29, 2015 Permalink

      Hi, thanks for your fine article, can you share how to setup the @bool/is_kitKat or @bool/is_pre_kitkat. Thank you.

  • Henry Addo 8:57 am on February 13, 2014 Permalink | Reply  

    OPSEC — You Can Care All About Security But… 

    Some OPSEC points lifted from the book REMOTE. You can care all about security but if you don’t apply some of these basic OPSEC points you will still be exposed.

    • All computers must use hard drive encryption.
    • Disable automatic login, require a password when waking from sleep and set the computer to automatically lock after ten inactive minutes.
    • Turn on encryption for all sites you visit aka HTTPS.
    • Make sure all smartphones and tablets use lock codes and can be wiped remotely.
    • Use a unique, generated, long-form password for each site you visit. Don’t use the same password for every login.
    • Turn on two-factor authentication whenever it’s available.
  • Henry Addo 9:46 am on January 15, 2014 Permalink | Reply  

    Email From ‘Customer Care’ 

    The email below just landed in my work inbox. Literally right in my inbox. I was hoping Gmail will flag it as spam with no trouble but that didn’t happen. It’s so easy for the naive and less tech savvy people like my mom to fall for this kind of message.

    Subject: Customer Care

    From email: <>

    This message comes from your (EMAIL SERVICE PROVIDER) messaging admin center to All E-mail Account owners. We are currently improving our Database and E-mail Account Center and creating more certainty for our Legal Service clients. At this moment we are upgrading our data base so that there will be more space for new customers and increasing the surf on the Internet. To prevent your Email address not to be de-activated and to enable it upgraded, you need to assist us by sending the information below to enable us upgrade it, so that your email account status were flect in our database as a very active, useful and legal email account.Do send to us the below information to enable us upgrade your Account, else your email account will lost in a short time.
    First Name:..
    Last Name: ..
    Date of Birth:..
    Email Address:  ..
    E-mail pass word:..
    Alternative Email:..
    Alternative  E-mail pass word:..
    WARNING!!! E-MAIL OWNERS who refuses to upgrade his or her account within Five days after notification of this update will permanently be deleted from our data base and can also lead to malfunctioning of the client or user’s account and we will not be responsible for loosing our account.
    Thanks for your understanding as it is geared towards serving you better.
    Webmail Support Team
    Warning Code: ID67565434.

    How does providing you with these kind of information provide you more space for your customers and how does it even make you surf the web faster…

    I have gone ahead and reported it as spam. Hopefully Gmail’s spam bot captures it the next time.

    If you’re new or getting familiar with the internet, ignore anyone you don’t know or service that ask for confidential info such as username, email address, password, credit card or ask you to click on a link. Don’t fall for it. Most of these messages sound so legitimate that it’s easy to give what they ask for . If you’re not sure, always ask someone if it’s okay to provide such information.


Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc