Skip to content

Archive for

28
Jul

Motorola unveils the Moto Pulse and Moto Surround wireless headphones


moto-pulse

Motorola just took the wraps off of the new Moto X Style, Moto X Play and Moto G (3rd Gen.) smartphones, but you didn’t think the company would stop there, did you? Motorola has just unveiled two new pairs wireless headphones, which are already on sale through the official company website. Let’s take a look to see how these new audio products stand out from the rest.

For starters, the Moto Pulse (pictured above) is a new pair of wireless Bluetooth-enabled headphones that will supposedly last up to 18 hours on a single charge. Available now for just $59.99, these new headphones feature an on-ear design, a modern aesthetic and can fold up for easy traveling.

moto-surround

Next up we have the Moto Surround – a smaller, more lightweight pair of Bluetooth earbuds that will offer up to 12 hours of battery life on just one charge. These are both waterproof and sweatproof, and feature a built-in microphone for taking calls while you’re working out. You can purchase the Moto Surround earbuds from the Motorola link below for $69.99.

28
Jul

How to get Location address in an Android app


aa-geocode-times-square

In previous tutorials, we have discussed how to get location data, as well as using location data to implement a simple device location tracking system using the ThingSpeak API. For this tutorial, we are going to use the Geocoder class to translate a given address into its latitude and longitude values (geocoding), and also translate a latitude and longitude value into an address (reverse geocoding).

Preparation

From Wikipedia, Geocoding uses a description of a location, such as a postal address or place name, to find geographic coordinates. Reverse geocoding, on the other hand, uses geographic coordinates to find a description of the location.

A geocoder is either a piece of software or a service that implements a geocoding process. The Android API contains a Geocoder class that can use either a location name or a location’s latitude and longitude values to get further details about an address (it can perform both forward and reverse geocoding). The returned address details include address name, country name, country code, postal code and more.

App Layout

Our app is going to use both forward and reverse geocoding to get location address, and the app layout reflects this. The layout contains two EditTexts for Latitude and Longitude respectively, and an EditText for address name input. Beneath these, we have two RadioButtons, to select if we are fetching an address using the location’s latitude/longitude values, or using the address name. There is a Button, that begins the geocoding lookup when clicked, a ProgressBar, to show the user that the lookup task is running in the background, and a TextView to show the result received.

aa-geocode-layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".FileActivity">

    <EditText
        android:id="@+id/latitudeEdit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/latitude"
        android:inputType="numberDecimal|numberSigned"/>

    <EditText
        android:id="@+id/longitudeEdit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/latitudeEdit"
        android:hint="@string/longitude"
        android:inputType="numberDecimal|numberSigned"/>

    <EditText
        android:id="@+id/addressEdit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/longitudeEdit"
        android:minLines="4"
        android:hint="@string/address"
        android:scrollHorizontally="false"
        android:scrollbars="vertical"
        android:enabled="false"/>

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/addressEdit"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/radioLocation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/use_location"
            android:checked="true"
            android:onClick="onRadioButtonClicked"/>

        <RadioButton
            android:id="@+id/radioAddress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/use_address"
            android:onClick="onRadioButtonClicked"/>
    </RadioGroup>

    <Button
        android:id="@+id/actionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/radioGroup"
        android:layout_centerHorizontal="true"
        android:text="@string/fetch"
        android:onClick="onButtonClicked"/>

    <TextView
        android:id="@+id/infoText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/actionButton"/>

    <ProgressBar
        android:id="@+id/progressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/actionButton"
        android:layout_centerHorizontal="true"
        android:visibility="invisible"/>

</RelativeLayout>

Fetching the Address

Geocoder has two methods for fetching an Address, getFromLocation(), which uses latitude and longitude, and getFromLocationName(), which uses the location’s name. Both methods return a list of Address objects. An Address contains information like address name, country, latitude and longitude, whereas Location contains latitude, longitude, bearing and altitude among others. Remember that the Geocoder methods above block the thread they are executed in, and should never be called from the app’s UI thread.

To perform a long running task in the background, we can use an AsyncTask. However, the AsyncTask is not recommended for operations like the Geocoder lookup, because it can take a potentially long time to return. AsyncTask’s should be used for comparatively shorter operations. While we can (and did) use the AsyncTask, as per the Android developer recommendations and best practices, we would use an IntentService. An IntentService extends Service, and operations run in it can take as long as necessary. An IntentService holds no reference to the Activity it was started from, and so, the activity can be rebuilt (like when the device is rotated), without affecting the IntentService’s tasks, unlike the AsyncTask. (NB: We actually used an AsyncTask, and it worked just as well. As a bonus, the activity, using an AsyncTask is available in the github project as MainActivityWithAsyncTask)

Using the IntentService

We extend IntentService and define GeocodeAddressIntentService. An IntentService is started much like an Activity. We build an Intent, and start the service by calling Context.startService() method.

Before defining the class, we include our GeocodeAddressIntentService in the AppManifest. Don’t forget to also include the INTERNET permission. In my case, while developing/testing on a Nexus 5 Lollipop device, the network calls just silently failed prior to including the INTERNET permission. So, if you do not get any response, first confirm that you have requested the INTERNET permission.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sample.foo.simplegeocodeapp">

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

    <application 
        ...
        <service
            android:name=".GeocodeAddressIntentService"
            android:exported="false"/>
    </application>

</manifest>

To use our IntentService, we must implement the onHandleIntent(Intent) method. This is the entry point for IntentService’s, much like the onCreate() is the entry point for Activity’s. In the code snippet below, take notice of the ResultReceiver object. When your IntentService has completed it’s task, it should have a way to send the results back to the invoking Activity. That is where the ResultReceiver comes in, and we’ll discuss it’s implementation in a bit.

public class GeocodeAddressIntentService extends IntentService 

    protected ResultReceiver resultReceiver;
    private static final String TAG = "FetchAddyIntentService";

    public GeocodeAddressIntentService() 
        super("GeocodeAddressIntentService");
    
    ...
    @Override
    protected void onHandleIntent(Intent intent) 
        Geocoder geocoder = new Geocoder(this, Locale.getDefault());
        List<Address> addresses = null;

        resultReceiver = intent.getParcelableExtra(Constants.RECEIVER);
        int fetchType = intent.getIntExtra(Constants.FETCH_TYPE_EXTRA, 0);
    ...
    

The code snippet below contains the actual forward or reverse geocoding lookup calls. We determine if the search uses location name, or location latitude/longitude values, and call the appropriate method. If using location name, we call the Geocoder.getFromLocationName() method, and if using latitude/longitude, we call Geocoder.getFromLocation() method. You can specify a maximum number of addresses to be returned. In our sample, we request for a maximum of one (1) address. Note that an address name can refer to more than one location, spread across multiple countries. In a production app, you might want to fetch more than one, and have an algorithm determine which is the most likely required address.

        if(fetchType == Constants.USE_ADDRESS_NAME) 
            String name = intent.getStringExtra(Constants.LOCATION_NAME_DATA_EXTRA);
            try 
                addresses = geocoder.getFromLocationName(name, 1);
             catch (IOException e) 
                errorMessage = "Service not available";
                Log.e(TAG, errorMessage, e);
            
        
        else if(fetchType == Constants.USE_ADDRESS_LOCATION) 
            Location location = intent.getParcelableExtra(
                    Constants.LOCATION_DATA_EXTRA);

            try 
                addresses = geocoder.getFromLocation(
                        location.getLatitude(), location.getLongitude(), 1);
             catch (IOException ioException) 
                errorMessage = "Service Not Available";
                Log.e(TAG, errorMessage, ioException);
             catch (IllegalArgumentException illegalArgumentException) 
                errorMessage = "Invalid Latitude or Longitude Used";
                Log.e(TAG, errorMessage + ". " +
                        "Latitude = " + location.getLatitude() + ", Longitude = " +
                        location.getLongitude(), illegalArgumentException);
            
        
        else 
            errorMessage = "Unknown Type";
        

        if (addresses == null || addresses.size()  == 0) 
            if (errorMessage.isEmpty()) 
                errorMessage = "Not Found";
            
            deliverResultToReceiver(Constants.FAILURE_RESULT, errorMessage, null);
         else 
            for(Address address : addresses) 
                String outputAddress = "";
                for(int i = 0; i < address.getMaxAddressLineIndex(); i++) 
                    outputAddress += " --- " + address.getAddressLine(i);
                
            
            Address address = addresses.get(0);
            ArrayList<String> addressFragments = new ArrayList<String>();

            for(int i = 0; i < address.getMaxAddressLineIndex(); i++) 
                addressFragments.add(address.getAddressLine(i));
            
(R.string.address_found));
            deliverResultToReceiver(Constants.SUCCESS_RESULT,
                    TextUtils.join(System.getProperty("line.separator"),
                            addressFragments), address);
        

deliverResultToReceiver is a simple method, that handles returning the results of the operation to the invoking Activity, through the ResultReceiver.

    private void deliverResultToReceiver(int resultCode, String message, Address address) 
        Bundle bundle = new Bundle();
        bundle.putParcelable(Constants.RESULT_ADDRESS, address);
        bundle.putString(Constants.RESULT_DATA_KEY, message);
        resultReceiver.send(resultCode, bundle);
    

We implemented the ResultReceiver as an inner class in the MainActivity.

    class AddressResultReceiver extends ResultReceiver {
        public AddressResultReceiver(Handler handler) 
            super(handler);
        

        @Override
        protected void onReceiveResult(int resultCode, final Bundle resultData) 
            if (resultCode == Constants.SUCCESS_RESULT) 
                final Address address = resultData.getParcelable(Constants.RESULT_ADDRESS);
                runOnUiThread(new Runnable() 
                    @Override
                    public void run() 
                        progressBar.setVisibility(View.INVISIBLE);
                        infoText.setText("Latitude: " + address.getLatitude() + "n" +
                                "Longitude: " + address.getLongitude() + "n" +
                                "Address: " + resultData.getString(Constants.RESULT_DATA_KEY));
                    
                );
            
            else 
                runOnUiThread(new Runnable() 
                    @Override
                    public void run() 
                        progressBar.setVisibility(View.INVISIBLE);
                        infoText.setText(resultData.getString(Constants.RESULT_DATA_KEY));
                    
                );
            
        

aa-geocode-the-louvre

Starting the IntentService is pretty similar to starting a new Activity. We build an Intent, put in the necessary Extras, and call Context.startService(Intent). The Extras we bundle in the Intent is dependent on if we are performing a forward or reverse lookup.

    public void onButtonClicked(View view) 
        Intent intent = new Intent(this, GeocodeAddressIntentService.class);
        intent.putExtra(Constants.RECEIVER, mResultReceiver);
        intent.putExtra(Constants.FETCH_TYPE_EXTRA, fetchType);
        if(fetchType == Constants.USE_ADDRESS_NAME) 
            if(addressEdit.getText().length() == 0) 
                Toast.makeText(this, "Please enter an address name", Toast.LENGTH_LONG).show();
                return;
            
            intent.putExtra(Constants.LOCATION_NAME_DATA_EXTRA, addressEdit.getText().toString());
        
        else  longitudeEdit.getText().length() == 0) 
                Toast.makeText(this,
                        "Please enter latitude/longitude values",
                        Toast.LENGTH_LONG).show();
                return;
            
            Location location = new Location("");
            location.setLatitude(Double.parseDouble(latitudeEdit.getText().toString()));
            location.setLongitude(Double.parseDouble(longitudeEdit.getText().toString()));
            intent.putExtra(Constants.LOCATION_DATA_EXTRA, location);
        
        progressBar.setVisibility(View.VISIBLE);
        Log.e(TAG, "Starting Service");
        startService(intent);
    

aa-geocode-times-square

Conclusion

While it is all well and good tracking a user’s location, for your app to truly amaze, showing users an address name for a given location will almost always be more useful than the corresponding latitude and longitude values.

The complete source code is available on GitHub, and can be forked, downloaded, copied and used as desired.

If you followed our previous tutorials on using the ThingSpeak API to track a device’s location, and how to get and use an Android device’s location, try to integrate geocoding and get location address in both apps. Have fun coding, and share your challenges and successes in the comments below.

28
Jul

Moto X Style vs Play: what’s the difference?


Moto_X_Play_White_Wood

It’s rare to be presented with a pleasant surprise in the world of gadgets, but Motorola has just unveiled two beauties – the new Moto X Style and Moto X Play. While both come bearing the company’s flagship Moto X branding, there are some rather major differences between the two handsets. So here’s a little check-list of what’s different and what features they have in common.

Let’s quickly breakdown the spec sheets.

  Moto X Style Moto X Play
Display 5.7-inch display
Quad HD (2560×1440) resolution, 515 ppi
5.5-inch display
Full HD (1920×1080) resolution, 401 ppi
Processor 1.8 GHz hexa-core Qualcomm Snapdragon 808 processor
Adreno 418 GPU
1.7 GHz octa-core Qualcomm Snapdragon 615 processor
Adreno 405 GPU
RAM 3GB 2GB
Storage 32/64 GB
expandable via microSD up to 128 GB
16/32 GB
expandable via microSD up to 128 GB
Camera 21 MP front-facing camera with dual LED flash
5 MP front-facing camera
21 MP front-facing camera with dual LED flash
5 MP front-facing camera
Battery 3,000mAh 3,630mAh
Software Android 5.1.1 Lollipop Android 5.1.1 Lollipop
Extras IP52 certified, NFC, Cat 6 LTE, Bluetooth 4.1, 4K video capture, Turbo Charge Water repellent, NFC, Bluetooth 4.0, 1080p video capture
Price $399 $299 (expected)

The Moto X Style is the bigger beast, both in terms of processing capabilities and physical size. The Moto X  still weighs in with a large 5.5-inch FullHD display, but the Moto X Style makes the jump up to a 5.7-inch display with a high-end QHD display resolution, bridging the size gap with the huge Nexus 6.

Despite stacking up an octa-core SoC against a hexa-core, it’s the Moto X Style that features the more powerful processor. Built from a combination of two high-performance Cortex-A57 cores and four Cortex-A53s, the Snapdragon 808 will provide superior levels of peak performance for when you need it. The Adreno 418 GPU is also significantly more powerful than the Adreno 405, but it does have to power the higher resolution QHD display, so the performance gap may not be as big as you may think. The Moto X Style also includes an additional 1GB of RAM which may help with multitasking scenarios, but the 2GB in the Moto X Play should be more than enough for most situations.

The Moto X Style and Play both feature a microSD card slot and 32GB storage options. The Play also offers a smaller 16GB storage capacity, while only the Moto X Style offers 64GB of built in storage. Oddly, the Moto X Play seems to have a larger battery, with a huge 3,630mAh capacity verses the Style’s still plentiful 3,000mAh.

Moto_X_Style_Colors_Back_Lifestyle

From here on out, there differences are much more subtle. Motorola has made big strides with camera technology this generation and both the Moto X Style and X Play offer the same high resolution shooting capabilities. There’s a 21MP rear camera with dual flash and a 5MP front camera on both models, so photographers will likely be happy with either option.

However, the Snapdragon 808 SoC allows for 4K video capture with the Moto X Style, while the Play is limited to 1080p video recording. There’s Bluetooth 4.1 with the Style and 4.0 with the Play. The former also has Tubro Charge capabilities and is IP52 resistant against water and dust, while the latter only features a water repellent coating. Subtle differences I know, but ones perhaps worth considering.

Both smartphones also offer the full range of Moto Maker customization options, including color and Flip Shells, engraving, and metallic accent options. Software is also the same across both models, with the latest Motorola tweaked version of Android 5.1.1 Lollipop on board.

The final separator is the price and retail availability. The Moto X Style, or Moto X Pure Edition as it will be known in the US, is the more expensive smartphone at $399, unsurprisingly. Motorola states that the X Play will be around $100 cheaper than the Style, suggesting a retail price of around $299. It is also important to note that the Play won’t be available in the US, hinting that Motorola is targeting the handset at more price sensitive markets.

Despite the differences, the Moto X Style and Play are two quite appealing handsets in their own rights. Which one is your favourite?

(function ()
document.getElementsByTagName(‘body’)[0]).appendChild(opst);
());

28
Jul

T-Mobile Adds Apple Music to Music Freedom, Offers Free ‘iPhone 6s’ Upgrade With iPhone 6 Trade-In


T-Mobile today announced that it has added Apple Music to Music Freedom, allowing Simple Choice customers to listen to the streaming music service without the cellular data counting against their monthly 4G LTE data plan. Apple Music joins dozens of other streaming music services supported by Music Freedom, including Spotify, Pandora, Rdio, Google Play Music, iHeartRadio, SoundCloud and SiriusXM.

Apple Music T-Mobile Music Freedom
T-Mobile also announced that customers who purchase an iPhone 6 for $15 per month through the JUMP! On Demand trade-in program will be automatically eligible to receive a free upgrade to the next iPhone — the so-called “iPhone 6s” — when it is released, with the $15 monthly promotional price carrying over to the new smartphone.


Purchasing an iPhone 6 through JUMP! On Demand will also land you priority access to the next iPhone, when T-Mobile receives inventory of the next-generation device, for those that upgrade within the first 48 hours of availability. T-Mobile claims these two new Apple promotions are the last of the carrier’s Un-carrier Amped moves this summer.


28
Jul

Epic App Battles of Android: Spotify vs. Songza


Welcome to the second round of the Epic App Battles of Andriod: Music Edition!

In the green corner, with 100 million downloads, we have Spotify! Spotify is the favorite in this match with a rating of 4.5!

In the blue corner, with 5 million downloads, Songza hopes to overthrow Spotify coming in at a ranking of 4.4!

Can Songza overcome the crowd favorite, Spotify, in a head to head battle? Read on and find out.

Round 1: App design

Generic_3A38A78962FC_
Generic_21C7BF923B75_
Generic_65991780D807_
Generic_B907D7E7B283_
Generic_BFFEBC4271A7_

Spotify

Spotify kicks things off with a slick interface consisting of dark greys and a ‘Spotify’ green. It isn’t overstated, but it isn’t boring either.

On certain screens, there are soft gradients that provide pleasant overall effects yet don’t distract or take away from the featured album art. Spotify also provides splashes of color and muted images to add something extra to the overall app design.

There is a slight inconsistency that I noticed in the ‘Now Playing’ view. In this view and this view only, you have rounded corners on top. What they were probably trying to do was make the ‘Now Playing’ view feel like it is resting on top of the rest of the interface when it is open, but it doesn’t quite hit the mark.

If they really wanted to make that work, the ‘Now Playing’ view should slide up from the bottom when you open it; however, it opens like you are pulling up a new page ruining the effect. I don’t get whey it doesn’t slide up when you open it because it slides down when you close that view perfectly fine.

It was a clever idea that didn’t quite land and comes off as an inconsistency and it honestly bothers me a little. For that, Spotify gets docked on the interface rating and will get a score of 8.5 for this round.

Rating: 8.5

Generic_6CDF33A78E3F_
Generic_662011DE439D_
Generic_B1F2088C0CB7_
Generic_7BD47526FB09_
Generic_762C11995168_

Songza

Songza’s interface just feels childish. They use what appears to be a four color gradient shifting from purple to indigo to blue and finally to green as a background. This gradient is changes throughout the day to different colors. I have yet to see a color combonation that doesn’t make me cringe a little. It just isn’t as elegant as other designs being used by other apps.

The poor background choice isn’t helped by what appears to be a persistant banner ad running along the bottom of the page.

Moving on through the app, it feels like someone’s first Android app project. Lists are just the generic list view with no sprucing up. The tiles seem to be just thrown onto the screen with no thought to appearance.

All things considered, the interface is workable, but not pleasant to use like Spotify’s interface is. With poor color choices and lazy UI elements, Songza gets a 3.5 for its app design. This gives Spotify a 5 point lead to start off with. things aren’t looking so hot for Songza.

Rating: 3.5

Round 1:

Spotify – 8.5

Songza – 3.5

Round 2: Features

 

Spotify gives you a bunch of options for your music playback. They offer up various playlists that fit into different categories according to genre or mood. Once you chose a mood or genre, you are presented with a wide range of playlists that go with whatever category you chose. This gives you a great way to find new music to love, or music that will fit into your current emotions or activities.

If you aren’t into music discovery, you are able to start playlists consisting of albums or artists that you enjoy. It is really easy to create playlists. All you have to do is search through Spotify’s library of music and slap that menu button to individual songs or entire albums to your playlists. From there, you can shuffle play your playlists to only get music that you enjoy.

There is a very interesting difference between the Spotify app on your phone and the Spotify app on your tablet. When using your phone to listen to Spotify, you only have the option to shuffle play playlists and listen to ‘radio stations’. However, when you are listening with your tablet, you can actually play any song you want.

You can tap on an individual song title and listen to that song instantly. On a phone, if you were to tap on an individual song, you would be prompted to shuffle play the album or playlist. Unless you have Spotify premium that is. You can also listen to any song you want on the desktop version of Spotify. Only the phone app is limited to shuffle playing music.

Another awesome feature is ‘Spotify Connect’. With Connect, you can play music through your tablet remotely through your phone’s Spotify app. The only downside is your tablet has to have Spotify open and has to be unlocked to get Connect started. However, once you have your tablet connected, you can control the music while your tablet’s screen is off or in another app.

Unfortunately, Spotify Connect doesn’t work the other way around (control phone playback with your tablet) unless you have Spotify premium. Another privilege exclusive to those with a premium subscription is using Spotify Connect on the desktop app.

Probably my favorite feature is tucked away in the settings. There is a built-in equalizer that actually works! You can use this equalizer to create your own audio profile to fit your tastes, or you can use preset options based on genre.

As awesome as Spotify is, they only allow you to play music through a single device at a time. If you start trying to play music through your tablet while someone is listening to Spotify with your phone, your phone’s music will pause once your tablet’s music starts up.

Generic_6F2C6AA2B00A_

 

What We Like about Spotify

  • Spotify Connect lets you control playback on your tablet from your phone
  • Curated playlists based on mood, activities or genre.
  • Play any song you want with a free account from a tablet
  • Ability to create custom playlists or find other user-created playlists
  • Built-in equalizer that actually works

What We Don’t Like about Spotify

  • No option to play straight through a playlist, you have to shuffle play as a free user
  • Can only play music from one device at a time

Rating: 9

 

Songza isn’t trying to do anything fancy or revolutionary. They have a simple interface, which probably contributes to why I disliked it so much, and a simple goal. They simply aim to deliver predesigned playlists to cater to specific activities, moods, decades and even ages.

The consequence of this simple goal is a severe lack of features. That is all that Songza has to offer. A set of playlists tailored to for various topics. You can like or dislike certain songs in a playlist, but I am unsure of how that affects the playlist. It would appear that the song doesn’t play again, but I cannot say that with 100% confidence as I am pretty sure that some of my disliked songs came back.

Other than the playlists, you are also given a Sleep Timer that will stop your music at a set time. This is a great feature that can be used to prevent music from streaming all through the night jacking up your WiFi/Data usage.

There really isn’t anything else noteworthy about Songza. There is an option to pull up the currently playing song in the Play Store, but that is about the extent of the app.

The limited number of skips (present in pretty much every free music streaming app) and ad banner that runs on the bottom of the app are rather infuriating and the limitations of Songza are just too numerous for my taste.

The worst part is that there is no way to remove these limitations. By that, I mean there is no paid service that will remove the ad and enable unlimited skips. This is the only music service I have found that implements those limitations and doesn’t allow the user to remove them.

There could be a market for Songza. It would be perfect for the casual listener who just needs background noise, but it is definitely not the music streaming app for me.

My Music Artist Slacker

What We Like about Songza

  • ‘Sleep Timer’ function
  • Predefined playlists
  • Simplistic goal

What We Don’t Like about Songza

  • Limited skips
  • Persistent ad banner
  • No paid option
  • Inability to play what/who you want

Rating: 5

Round 2:

Spotify – 9

Songza – 5

Round 3: Price

Spotify Free Version: Ads, commercials, can’t select individual song to play on mobile phone, limited Spotify Connect functionality and limited skips

Spotify Premium Version: $0.99 for the first three months then $9.99 per month upgrades you to no ads and fewer interruptions and unlimited functionality

Rating: 8

Songza Free Version: Limited skips, banner ad and only version available

As much as I dislike it, you can’t beat free

Rating: 10

Round 3:

Spotify – 6

Songza – 10

After 3 rounds of head to head action between Spotify and Songza, we have to take it to the judges score cards. Not really, but we don’t want to hurt Songza’s feelings. In reality, Spotify took out Songza in the first round.

Final Score:

Slacker – 23.5

Pandora – 18.5

Summary

 

Songza really didn’t have a chance against all mighty Spotify. Spotify offers everything, well the one thing, that Songza offers and a whole lot more. Not to mention that Spotify also manages to do it loads more elegantly than Songza did.

Songza is just too simple of an app. It really does fill like more someone’s Senior project than a marketable and functional app.

I actually have to thank Songza though. After this experience, I found Spotify to be so vastly superior to Songza that I went out and paid for the premium version of Spotify. Spotify’s Connect feature and other features deserve the $9.99 a month.

So that is how I rank Songza and Spotify against each other. Which one do you prefer? What is your go-to music streaming service? Let us know in the comments down below!

The post Epic App Battles of Android: Spotify vs. Songza appeared first on AndroidGuys.

28
Jul

Motorola unwraps Moto G, Moto X Play, and Moto X Style


Motorola on Tuesday announced three new models of smartphone, each designed with a different demographic in mind. One is a successor to an existing line while the other two are variations on another line. Beginning today and rolling out over the coming weeks are the Moto G, Moto X Style, and Moto X Play.

Moto G (3rd Gen.)

Available immediately via Motorola.com, the new Moto G can be had for as low as $179.99 — off contract, of course. Options include 8GB storage with 1GB RAM as well as 16GB storage with 2GB RAM.

Powered by Android Lollipop, the phone offers a 5-inch full HD display, 13-megapixel rear camera, and front-facing 5-megapixel camera. Water resistant, the Moto G is rated against splashes and drops in water and can withstand up to 30 minutes in a meter of water.

0bb313fcf652e1fee979f49bcabfbf7dbe8a7cb7 781ce34a5b7f07fffb795fca61be4b4748cde9f3

Internally, the handset runs a quad-core Qualcomm 410 processor and can be designed with either of the aforementioned memory combinations. There is a difference of $40 between the 8GB/1GB and 16GB/2GB option.

Rounding out the specs are a microSD expansion card slot, 4G LTE support, and a 2470mAh battery. In terms of added software, Motorola has kept it light, loading Moto Display and Moto Assist.

The 2015 (3rd Gen.) edition also marks the first time the Moto G can be customized using the Moto Maker tool. With two front colors and ten back plate colors, it’s possible to deck out your device in a handpicked accent color; engraving is also available. As an added bonus, the back plates can be removed and changed using shells and flip shells at a later date.

Moto X Play

The first variant of the Moto X family, the Moto X Play boasts a downright ridiculous 3,630mAh battery with Quick Charge technology. Promising two days on a single charge, the phone can pick up 8 hours of battery life from only 15 minutes of charging.

Moto_X_Play_Blue_White_Lifestyle

 

Other details disclosed today were the 5.5-inch full HD screen, 21-megapixel rear camera, and 5-megapixel user-facing camera. Powering the show here is a 1.7GHz Qualcomm 610 processor; storage and memory is not yet known.

Motorola has not revealed pricing was nor specific U.S. plans at this time. Moto X Play will be available starting in August in various countries across Europe, Latin America, and Canada (sorry, it won’t be available in the US, but we’ll have more choices for you all later this year). Moto X Style will be available in countries across Europe, Latin America and North America starting in September. News for Asia Pacific, China and India will come later this year.

Moto X Style

Considered a “Pure Edition” handset in the U.S., the unlocked phone will feature universal banding which means support for LTE networks around the world.

Moto_X_Style_Champagne_Front_Back

Like its predecessor, the Moto X Style can be designed via Moto Maker with rear panel materials that include wood, leather, and silicon.

In terms of specs, this version packs a 5.7-inch screen, 21-megapixel rear camera, and Quick Charge capabilities. Shipping with Android 5.1.1 Lollipop, the Moto X Style will be arrive in the US in September with a price tag of $399.

New accessories

In addition to the three new devices, Motorola also introduced the Moto Pulse and Moto Surround, new audio device “that fit with our busy on-the-go lifestyles”.

The Pulse is an ultra-light, wireless on-ear Bluetooth headphone that delivers up to 18 hours of continuous playtime. Available through motorola.com immediately, the unit is priced at $59.99.

The Surround is an earbud designed to wear around the collar and which promises 12 hours of playtime. Sweat-proof and waterproof, the headset also has a built-in mic and volume buttons for taking calls. It, too, is available starting today on motorola.com with a for $69.99 sticker.

The post Motorola unwraps Moto G, Moto X Play, and Moto X Style appeared first on AndroidGuys.

28
Jul

UK plots crackdown on digital tax dodgers


HMRC Closing In 4The government probably has enough info on us to know what we had for breakfast this morning, but the taxman doesn’t really care what fruit you liven up your porridge with. HMRC is interested in getting every last penny it’s owed, however, especially money tied up in the UK’s digitally driven, “hidden economy.” HMRC estimates that it lost out on almost £6 billion in the 2012/13 tax year thanks to undeclared earnings from businesses operating on digital platforms like eBay and Airbnb. Thus, it’s proposing changes to legislation that would extend its data-gathering powers to identify who’s responsible for the shortfall, and where it’s stashed.

HMRC revealed its plan in a recent consultation document, which opens the floor to discussion on legislative changes before they go through. In it, the taxman proposes to expand its data-collection activities “to business intermediaries and electronic payment providers.” In the same way HMRC looks at your banking history to make sure you’re paying enough tax, it’s asking for similar access to data held by digital platforms to seek out those “concealing sources of income.” While it doesn’t name names, the document notes that “intermediaries operate across many industries, for example for restaurants supplying take away food; for hotel booking; or to enable ticket resale for events.”

This may sound like HMRC wants to go after websites that handle online referrals, and your local curry house that siphons money from JustEat orders in an anonymous PayPal account. But, it could have a much wider reach, depending on how deep Her Majesty is willing to dig. You see, if you resell car-boot nicknacks on eBay or top up the rainy-day fund through Airbnb rentals, you may effectively be running a business (you tax dodger, you). In addition to collecting bulk data from specific digital facilitators, HMRC intends to hit up advertising platforms and app stores, in case your vegan blog or freemium puzzler is taking off to any degree.

To be clear, it’ll still be perfectly safe to offload your old Xbox 360 games on Gumtree under the proposed changes to legislation. Flogging screen-printed T-shirts on Facebook without the taxman sniffing around, however, might prove more problematic. Depending of how easy these new data dumps would be to analyse, though, it’s unlikely HMRC would care unless you’re making serious bank through your online side-project. According to the authorities, this isn’t just a money-grabbing exercise: HMRC claims that it could use third-party data to conveniently autofill your tax return for you, meaning all you need to do is confess. The taxman also states, of course, that “those who are tax compliant should see little or no impact.”

Filed under: Internet

Comments

Via: BBC, Gizmodo

Source: HMRC (pdf)

28
Jul

The Moto X Style Pure Edition hands-on


OLYMPUS DIGITAL CAMERA

So if you’ve ever wished you could get a Nexus 6, but with all the Moto Maker customizations, you’re in luck, cause that’s pretty much what the Moto X Style Pure Edition is. It’s got the same basic shape and design as the Moto X you love, just super-sized to 5.7-inches. At its thickest, the Moto X Style is a surprisingly beefy 11.06mm. That’s not exactly chunky, but it’s certainly thicker than many other super svelte flagships out there. You don’t necessarily notice the extra bulk though, because the edges taper down to a more manageable 6.1mm. What you do notice is the heft. The 179g body feels substantial. But not in a holding a brick way, more in a premium way. The Moto X Style feels like it was made from durable high-end parts and materials, not from cheap flimsy plastic.

What you really want to know about though is those customizable backplates (it’s ok you can admit it, you don’t really care what processor is inside). And let me tell you, Motorola has knocked it out of the park. The new silicon backs are soft and lovely in a way that you don’t come across too often any more on smartphones. They feel difficult to scratch or mark and, at least on the light champagne finish, collected exactly zero fingerprints. Even more impressive was the natural Saffiano leather. Now, obviously this is a matter of personal preference, but I love the feel of the Saffiano leather. Most commonly you find this material on handbags and briefcases. It’s a leather thats stamped with a crosshatch pattern that makes it scratch resistant and offers great grip and texture. It wont age in the same way smoother leathers will, or develop the same type of patina, but it will still gain character as you beat it up use it.

What about the software? Well, it’s Lollipop. It’s Android. It’s pure as the driven snow. Ok, maybe not that pure, but pretty close. There’s no ugly skin, no carrier bloatware. The only additions to the basic Google package of apps are a few Motorola tools that are actually pretty useful. Moto Assist, Moto Display and Moto Actions are there to add more features to your voice commands and automate things like turning on and off your ringer based on your calendar or location. The boost in processing power, including the dedicated context and language processors, mean that all these features (and the phone in general) zip along with nary a hiccup. (At least until you’ve install a few dozen apps and taken a few hundred photos.)

The one new hardware feature that you can’t avoid noticing is the screen. It’s big. It’s crisp. It’s beautiful… so long as you don’t turn down the brightness too much. When cranked to top brightness the Moto X Style’s display is beautiful. Samsung, Apple and LG hold a bit of an edge in pure quality, but that’s hardly a knock on Moto and more a testament to the insane level of work that goes into those company’s screens. The only issue with the display is that when you drop the brightness too low, the screen takes on an unmistakable blue hue. It hardly ruins the experience of using the phone, but it’s something to be aware of if you’re a stickler for color accuracy. It’s also surprising since Motorola is touting the Style’s photo capabilities. It does take excellent photos, but if you’re trying to save battery by dimming the screen, you’d never know it.

What’s most impressive though, is that you’d never realize this phone only costs $400 when you’re playing with it. It feels and looks better than many phones that would cost $600 or even $700 off contract.

Edgar Alvarez contributed to this report.

Filed under: Cellphones, Mobile, Lenovo

Comments

28
Jul

Researchers boost solar energy by tapping infrared light


AP

Our sun blasts out over 50 percent of its energy as “near-infrared” light, but solar cells only harvest visible light. As a result, the best commercial panels only convert about 20 percent of solar energy to electricity. Researchers from UC Riverside have now figured out how to “upconvert” infrared energy into much more useful visible light, a process that could make solar panels up to 30 percent more efficient. To do it, the team combined semiconductors with organic molecules, resulting in a material that essentially helped them “reshape the solar spectrum,” according to lead researcher Christopher Bardeen.

Scientists have long understood that two infrared photons can be combined to create a single visible photon. That process has obvious value for solar energy, but creating a practical way to do it has been elusive. The UC Riverside team managed to convert infrared light into orange/yellow light, nearly doubling the energy of the original photons. Bardeen explains: “The (semiconductor) absorbs two (infrared) photons and passes their energy on to an organic compound for combination. The organic compounds then produce one high-energy (visible) photon.” The result? Light that can be absorbed by photovoltaic cells that would have otherwise been wasted.

Such a material could be used to create new photovoltic cells or coat existing panels, for instance. However, we need to add the usual caveats about solar energy — lots of research sounds promising, but most of it never amounts to much. We hope that this latest discovery eventually gets to market, but don’t count on it.

Filed under: Science, Alt

Comments

Source: UCR Today

28
Jul

Virgin Galactic’s SpaceShipTwo crash was due to co-pilot error


Virgin Galactic's SpaceShipTwo following its crash

After nearly 9 months of investigation, the National Transportation Safety Board has an official explanation for Virgin Galactic’s SpaceShipTwo crash. As suspected, the accident happened when the co-pilot triggered the “feathering” system (moving the tail wings to increase drag for reentry) well below the intended Mach 1.4 speed — the premature resistance led to the suborbital craft breaking up and plummeting into the Mojave Desert. More details are forthcoming, but Virgin Galactic says that it welcomes the findings. Hopefully, the lessons learned prevent future accidents and keep private spaceflight on track.

[Image credit: AP Photo/Ringo H.W. Chiu]

Filed under: Transportation

Comments

Source: Virgin Galactic (Twitter), NTSB