Moto G (2015) rumored to be launching on July 28th
There are lots of rumors floating around regarding Motorola’s next smartphone lineup, and it looks like we won’t have to wait too long to find out what Motorola has planned for the next Moto G. According to the Brazilian site Tecmundo, the Moto G will be launched on July 28th and go on sale in Brazil on the same day.
The device is expected to sport a 5 inch 720p display and use the Snapdragon 410 processor. It is thought that there will be two models, one with 8GB of storage and one with 16GB. The former will likely have 1GB of RAM, while the latter could pack 2GB.
As for the camera, we are expecting a 13MP rear facing snapper and a 5MP one on the front. The unit will be powered by a 2470 mAh battery, will include a SD card slot, and support 4G LTE.
According to a recent leak, the Moto G (2015) will come with Moto Maker support.
Rumors about the next gen Moto G have been building for a while and according to a recent leak, the Moto G (2015) will come with Moto Maker support. This means owners could be able to choose different colored back panels, front panels, and accent colors for the metallic camera module.
However not everyone is jumping for joy if these specification turn out to be accurate. The rumored processor in the new Moto G is the Qualcomm Snapdragon 410. A 64-bit processor with four Cortex-A53 cores clocked at 1.4GHz. It also includes an Adreno 306 GPU. The problem is that this the same processor used by the Moto E, the cheaper sibling of the Moto G. The 4G LTE version of the Moto E uses the Snapdragon 410, however clocked slightly slower at 1.2GHz.
The first two generations of the Moto G have certainly been well received and I am looking forward to seeing what Motorola is going to do next.
The reality is however, that the Moto E and Moto G are quite different devices. The Moto E has a 4.5 inch display and a 5MP rear facing camera. The Moto G trumps the Moto E in just about every department and even if the processor is the same, that shouldn’t be a worry for Moto G fans as the Snapdragon 410 is definitely an upgrade from the processor found in the the second gen Moto G.
The rumored pricing for Brazil is R$899 which works out at around $286 USD. However that probably isn’t a reflection on the international price as the current Moto G 4G costs R$929, when bought directly from Motorola in Brazil. International pricing is likely to be similar to the second generation Moto G.
The first two generations of the Moto G have certainly been well received and I am looking forward to seeing what Motorola is going to do next especially given all of the recent leaks, but what do you think? Are you looking forward to the new Moto G?
WiFi Aware enables instant local device communication
WiFi may empower us to do clever things but the technology itself isn’t that smart. It doesn’t communicate anything meaningful until a full connection has been established, which means that it can’t tell us useful pieces of information about the service that we want to connect to. However, the newly unveiled WiFi Aware specification aims to change this.
WiFi Aware enables certified products to discover and communicate with other nearby devices without relying on an internet connection, sort of like Bluetooth Low Energy or Qualcomm’s LTE Direct. Devices will continually broadcast small packets of information, which could allow applications to push notifications to other devices or provide information to a user about a nearby service, person or business, all before making a regular WiFi connection.
WiFi Aware is part of the growing trend towards smaller hubs connected up to the larger Internet of Things. This could power all sorts of simple conveniences, such as turning on you lights when you’re in range of your home WiFi or finding a nearby shop which stocks your favorite products.
A key part of the idea is contextual data. We don’t want to be bombarded with all of the information from variously nearby networks. Instead, users will have control over the type of data they are alerted too and the data that push to other devices, a filter if you will. WiFi Aware devices know about everything in close proximity, but only connects to relevant sources of information.
Privacy and the impact on battery life are sensible concerns, but Edgar Figueroa, President of the WiFi Alliance, says that WiFi Aware is very power efficiency and consumes less energy than traditional WiFi. As for privacy, apps that use the service will have opt in/out settings, and the lack of an instant Internet connection offers some extra protection.
The first wave of WiFi Aware gadgets and applications not here just yet, but Broadcom, Intel, Marvel and Realtek already have certified chips for future gadgets. Social networks could roll out applications with Wi-Fi Aware before the end of the year.
Epic Games is the latest hacking victim
Not even a chainsaw bayonette (or the stealthy gent up above) could stop Epic Games from falling prey to hackers. The Unreal Engine-maker sent emails to members of its forums announcing that unauthorized access to usernames, email addresses, passwords and birthdates may have been accessed by an intruder. From the sounds of it, the only channels affected were related to Bulletstorm, Gears of War, Infinity Blade, UDK, and older Unreal Tournament titles. Developers active on the Unreal Engine 4 forums shouldn’t have anything to worry about, nor should those posting about Fortnite and the latest Unreal Tournament. For now, the forums are offline while Epic investigates the source of intrusion and the company warns to be on the lookout for any phishing attempts, nefarious emails or other, ahem, infiltrations into your sensitive information.

Filed under: Gaming, Home Entertainment, Internet, HD
Source: Epic Games
London’s getting another 51 all-electric buses
London’s public transport is already going green, but there’s still a lot of work to do before all of the city’s buses are switched over to renewable energy sources. Just two weeks after mayor Boris Johnson announced the capital will host the world’s first purpose-built all-electric double decker, Transport for London (TfL) today confirmed a further 51 green vehicles will hit the streets by autumn in a bid to lower carbon emissions and improve London’s air quality.
While the contract has been handed to Go Ahead, one of the UK’s largest bus operators, it’s not yet known who will supply the new all-electric buses. However, it’s been made clear that they will run on route 507, which links Waterloo with Victoria, and route 521, which connects Waterloo to London Bridge. While two Chinese electric buses have operated on these routes since 2013, two new Spanish buses were introduced just this week. Once the new fleet arrives, both routes will become fully electric and join London’s first all-electric service, route 312, when it makes the switch later this year.
In in the next five years, TfL hopes to have 300 zero-emission single-deck buses and 3,000 double-decker hybrid buses running across central London. Considering that there will only be 22 pure electric buses in London come October, the TfL has its work cut out. However, it’s already allocated upwards of £700 million to make it all happen.
Filed under: Transportation
Source: TfL
Specs for upcoming Huawei-manufactured Nexus leak
We’ve known for sometime that Google has afforded Huawei the task of developing its next generation Nexus smartphone, but we hadn’t, up until now, received any reliable leaks or rumors suggesting what the Chinese company had planned for the device.
Earlier today, renowned leaker @Evleaks took to his Twitter page to reveal some of the specifications for the upcoming Huawei Nexus. If they turn out to be correct, and we have no reason to doubt the credibility of the source, it looks like the handset is set to be pretty impressive.
According to the imparted information, the device will sport a 5.7-inch QHD display, feature a fingerprint scanner and be powered by Qualcomm’s upcoming quad-core Snapdragon 820 System-on-Chip (SoC).
Unfortunately, we don’t have a specific date for when Google is intending to launch its next Nexus, but the initiator of the leak has reason to believe that it will be in the fourth quarter of this year.
As with all leaks and rumors, we have to take the above alleged specifications with a pinch of salt, at least until Google or Huawei provide us with some evidence with regards to what’s in store for its next flagship, but hopefully we won’t have to wait too much longer to find out.
Source: @Evleaks (Twitter)
Come comment on this article: Specs for upcoming Huawei-manufactured Nexus leak
The Sony Lavender may be released publicly as the Xperia C5 Ultra
According to popular tipster @Upleaks, Sony’s upcoming selfie-focused smartphone, previously known by its internal codename Lavender, may be released publicly under the branding ‘Xperia C5 Ultra’.
With regards to its specifications, the handset is rumored to sport a super-narrow bezel, a FHD display, 2GB of RAM, a 1.7GHz octa-core MediaTek chipset, a 13-megapixel rear facing camera and a 5-megapixel front-facing shooter.
Sadly, we don’t have any information with regards to an official launch date just yet, but judging by the frequency of leaks, we presume that Sony will take the wraps off this device sometime next month.
Source: @Upleaks (Twitter)
Come comment on this article: The Sony Lavender may be released publicly as the Xperia C5 Ultra
HTC confirms that it will roll out the Android M update to the One (M8)
Earlier today, HTC’s Vice President of Product Management, Mo Versi, took to his official Twitter page in order to announce that the Taiwanese company will be rolling out the upcoming Android M update to all Developer and Unlocked variants of the One (M8).
@sonsonnetwork @HTCUSA Thanks Pierrette! Appreciate your support. Yes, the M8 will receive the M OS update.
— Mo Versi (@moversi) June 30, 2015
This is great news for those who previously believed that the device wouldn’t be receiving any future major upgrades. Owners of the M8 can expect to see the update on their phones by the end of the year.
Source: Mo Versi (Twitter)
Come comment on this article: HTC confirms that it will roll out the Android M update to the One (M8)
OnePlus Two camera details revealed by MKBHD

With just two weeks left to the official unveiling, there are still a few details that OnePlus hasn’t revealed about its upcoming OnePlus Two handset. Camera specifications can now be ticked off the list, as prolific Youtuber MKBHD has been given one to take for a photography trail run.
Details reveal that the OnePlus Two’s camera will come with a 13 megapixel resolution and a maximum f/2.0 aperture, which falls just shy of some of the more expensive 2015 flagships. Sadly, there doesn’t appear to be any optical image stabilization, but the phone is making use of laser auto-focus technology to bring nearby objects into focus very quickly. We first saw this type of technology in a smartphone back with the LG G3.
As for image quality, initial testing suggests that the OnePlus Two shows a noticeable improvement over its predecessor. However, the phone still falls a way short of the very best camera tech on the market right now, such as the cameras found in the LG G4 and Samsung Galaxy S6.
That being said, OnePlus is apparently still working on the phone’s camera software, so there may still be some slight tweaks and improvements to image processing come the final release.
You can check out the hands on testing in the video below, which features a wide range of shots taken with the handset.
Other known details about the OnePlus Two include 4GB of LPDDR4 RAM, a USB Type-C port, Snapdragon 810 processing package and a price tag that will fall under $450. Any thoughts on what we know about the handset so far?
Samsung’s Galaxy A8 is its thinnest phone yet
Samsung has quietly launched its slimmest smartphone ever in China. The Galaxy A8 isn’t a spec-monster, but it’s certainly a design feat for a company that gets criticized a lot on that front. The all-metal body is just 5.9mm thin, weighs a mere 151 grams (5.3 oz) and has a bezel size that you can basically round down to zero. The internals are still good enough to fight any mid-range device: a 5.7-inch 1080p OLED display, 8-core Snapdragon 615 chip, a 16-megapixel f/2.2 rear/5-megapixel wide-angle f/1.9 front camera and 2GB of RAM. Despite the size, Samsung managed to squeeze in a generous 3,050mAh battery that’s larger than the Galaxy S6’s.
Samsung has also thrown in other tech like a fingerprint sensor and hand-wave detection that activates a photo timer. It’s obviously betting that Asian buyers looking at a similar mid-range phone (like the HTC Desire 826) will go for the Galaxy A8 instead based on its premium metal body and extra features. And that brings us to the price — it’s rumored to start at 3,499 yuan (about $560), a price that’s on the high-end for that class of device. There’s no news on US or European availability, but we’d guess it’ll come over here — even if it doesn’t a similar design language may arrive in the form of the incoming Galaxy Note 5.
Filed under: Cellphones, Mobile, Samsung
Source: Samsung
How to get and use location data in your Android app
Using Location in your app has incredible potential in making your app seem intelligent to end users. With location data, your app can predict a user’s potential actions, recommend actions, or perform actions in the background without user interaction.
For this article, we shall discuss integrating location updates into an Android app, with a focus on fetching the latitude and longitude of a given Location only. It is worth pointing out that Location can (and does) contain much more than just latitude and longitude values. It can also have values for the bearing, altitude and velocity of the device.
Preparation
Before your app can receive any location data, you must request location permissions. There are two location permissions, ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION. We use ACCESS_FINE_LOCATION to indicate that we want to receive as precise a location as possible. To request this permission, add the following to your app manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.foo.simplelocationapp" >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</maniifest>
We also need to select which of the location providers we want to use to get the location data. There are currently three providers:
- GPS_PROVIDER: The most accurate method, which uses the built-in GPS receiver of the device. GPS is a system of satellites in orbit, that provides location information from almost anywhere on earth. It can sometimes take a while to get a GPS location fix (generally faster when the device is outdoors).
- NETWORK_PROVIDER: This method determines a device’s location using data collected from the surrounding cell towers and WiFi access points. While it is not as accurate as the GPS method, it provides a quite adequate representation of the device’s location.
- PASSIVE_PROVIDER: This provider is special, in that it indicates that your app doesn’t want to actually initiate a location fix, but uses the location updates received by other applications/services. In other words, the passive provider will use location data provided by either the GPS or NETWORK providers. You can find out what provider your passive provider actually used with the returned Location’s getProvider() method. This provides the greatest battery savings.
Layout
For our app, we are going to fetch location data using the GPS provider, the NETWORK provider, and also by asking the device to decide which is the best available provider that meets a given set of criteria. Our layout has three identical segments, each of which contains:
- A title for the section, such as GPS LOCATION
- A Button to resume and pause location updates for the section/provider
- Longitude Value
- Latitude Value
The code snippet for the GPS section, from our layout/activity_main.xml file is shown below
<TextView
android:id="@+id/titleTextGPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="GPS LOCATION"
android:textSize="20sp"/>
<Button
android:id="@+id/locationControllerGPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/titleTextGPS"
android:text="@string/resume"
android:onClick="toggleGPSUpdates"/>
<TextView
android:id="@+id/longitudeTextGPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/locationControllerGPS"
android:text="longitude"
android:textSize="20sp"/>
<TextView
android:id="@+id/longitudeValueGPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/locationControllerGPS"
android:layout_toRightOf="@id/longitudeTextGPS"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:text="0.0000"
android:textSize="20sp"/>
<TextView
android:id="@+id/latitudeTextGPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/longitudeTextGPS"
android:text="latitude"
android:textSize="20sp"/>
<TextView
android:id="@+id/latitudeValueGPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/longitudeValueGPS"
android:layout_toRightOf="@id/longitudeTextGPS"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:text="0.0000"
android:textSize="20sp"/>
MainActivity
It is possible that the user has their device Location settings turned off. Before requesting location information, we should check that Location services are enabled. Polling for location data with the settings turned off will return null. To check if Location is enabled, we implement a method, called isLocationEnabled(), shown below:
private boolean isLocationEnabled() {
return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) ||
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
We simply ask the LocationManager if either the GPS_PROVIDER or the NETWORK_PROVIDER is available. In the case where the user has Location turned off, we want to help them get to the Location screen as easily and quickly as possible to turn it on and get back into our app. To do this, we implement the showAlert() method.
private void showAlert()
final AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Enable Location")
.setMessage("Your Locations Settings is set to 'Off'.nPlease Enable Location to " +
"use this app")
.setPositiveButton("Location Settings", new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt)
Intent myIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(myIntent);
)
.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt)
);
dialog.show();
The most interesting line in the snippet above is within the setPositiveButton() method. We start an activity using the Settings.ACTION_LOCATION_SOURCE_SETTINGS intent, so that when the user clicks on the button, they are taken to the Location Settings screen.
Getting location updates
To get GPS and Network location updates, we use one of the LocationManager’s requestLocationUpdates() methods. Our preferred is requestLocationUpdates(String provider, int updateTime, int updateDistance, LocationListener listener). updateTime refers to the frequency with which we require updates, while updateDistance refers to the distance covered before we require an update. Note that updateTime simply specifies the minimum time period before we require a new update. This means that the actual time between two updates can be more than updateTime, but won’t be less.
A very important point to consider is that Location polling uses more battery power. If your app doesn’t require location updates when in the background, consider stopping updates using one of the removeUpdates() methods. In the code snippet below, we stop/start location updates in response to clicking on the relevant Button.
public void toggleGPSUpdates(View view)
if(!checkLocation())
return;
Button button = (Button) view;
if(button.getText().equals(getResources().getString(R.string.pause)))
locationManager.removeUpdates(locationListenerGPS);
button.setText(R.string.resume);
else
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 2 * 60 * 1000, 10, locationListenerGPS);
button.setText(R.string.pause);
For both NETWORK_PROVIDER and PASSIVE_PROVIDER, simply replace GPS_PROVIDER above with your desired provider.
In the case where you just want to pick the best available provider, there is a LocationManager method, getBestProvider() that allows you do exactly that. You specify some Criteria to be used in selecting which provider is best, and the LocationManager provides you with whichever it determines is the best fit. Here is a sample code, and it’s what we use to select a provider:
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
if(provider != null)
locationManager.requestLocationUpdates(provider, 2 * 60 * 1000, 10, locationListenerBest);
button.setText(R.string.pause);
Toast.makeText(this, "Best Provider is " + provider, Toast.LENGTH_LONG).show();
Using the above code and Criteria, the best provider will be GPS_PROVIDER, where both GPS and NETWORK are available. However if the GPS is turned off, the NETWORK_PROVIDER will be chosen and returned as the best provider.
LocationListener
The LocationListener is an interface for receiving Location updates from the LocationManager. It has four methods
- onLocationChanged() – called whenever there is an update from the LocationManager.
- onStatusChanged() – called when the provider status changes, for example it becomes available after a period of inactivity
- onProviderDisabled() – called when the user disables the provider. You might want to alert the user in this case that your app functionality will be reduced
- onProviderEnabled() – called when the user enables the provider
We implement only the onLocationChanged() method for this sample, but in a production app, you will most likely want to perform an appropriate action for each situation.
private final LocationListener locationListenerNetwork = new LocationListener()
public void onLocationChanged(Location location)
longitudeNetwork = location.getLongitude();
latitudeNetwork = location.getLatitude();
runOnUiThread(new Runnable()
@Override
public void run()
longitudeValueNetwork.setText(longitudeNetwork + "");
latitudeValueNetwork.setText(latitudeNetwork + "");
Toast.makeText(MainActivity.this, "Network Provider update", Toast.LENGTH_SHORT).show();
);
@Override
public void onStatusChanged(String s, int i, Bundle bundle)
@Override
public void onProviderEnabled(String s)
@Override
public void onProviderDisabled(String s)
;
Android Developer Newsletter
Do you want to know more? Subscribe to our Android Developer Newsletter. Just type in your email address below to get all the top developer news, tips & links once a week in your inbox:
Email:
PS. No spam, ever. Your email address will only ever be used for Android Dev Weekly.
Conclusion
The complete source code is available on github, for use (or misuse) as you see fit. Just be mindful of the following:
- Integrating location tracking in your apps drains the battery.
- Google recommends apps request updates every 5 minutes (5 * 60 * 1000 milliseconds). You might need faster updates if your app is in the foreground (fitness/distance tracker).
- Users can have location turned off. You should have a plan for when location settings is turned off.
Have fun building Android apps, and watch out for our upcoming tutorial where we make use of Android device location data and web APIs to build something even more fun and challenging.















