Pages

Showing posts with label from. Show all posts
Showing posts with label from. Show all posts

Friday, May 13, 2016

HTC One GSM or LTE



HTC One is a new flagship device from HTC for 2013. With no doubts it is a great device with top hardware and innovating software. I will make a review of One soon, so expect a lot of pictures and in-depth comparison of HTC Sense 4+ and brand new HTC Sense 5.

For now some of you might be wondering about possible variants of this device. I made some research and I think I know how would this work. It is not officially confirmed, however I believe it is quite reliable and trustworthy.
Apart of all carriers branded models (also U.S. AT&T, U.S. Verizon and U.S. Sprint), there will be GSM  and GSM + LTE variants available for most countries. Respectively M7_U for GSM and M7_UL for LTE. Now the question is - when new update will come for U, will it come for UL the same day, or maybe week later? I cant answer that, but I hope both variants will be updated at the same time.
First off all, looking at HTC One software, its easy to spot that both U and UL variants have the same code-name "m7". Model ID (MID) will be probably slightly different. LTE variant has PN0710000, while GSM should have something like PN0711000 or PN0710001. The beginning of the code will be the same for all One variants - PN07.

Now, lets assume we speak about European version (to avoid confusion with different CIDs or MIDs). It is said that Snapdragon 600 (HTC One SoC) has LTE modem already integrated (just like S4 and S4 Pro). So logically, there shouldnt be 2 different variants of S600 (with or without LTE). And so I believe that. This means that GSM variant of HTC One will have LTE modem as well, but most probably it will be disabled. Is it possible to disable LTE modem? Sure. The fact that specific SoC has LTE modem doesnt mean its activated.

Will it be possible to activate LTE radio in GSM model? Im not sure yet, but I think it would. How? Youll need S-OFF device, thats obvious. Since both GSM and LTE models will have the same hardware, having S-OFF you should be able to flash M7_UL software (RUU.exe). Of course youll have to modify your Model ID (MID) in fastboot before (fastboot oem writemid PN0710000). Is there a risk to totally brick your device? Yes! So dont try it before it is confirmed to be working.

To find any official confirmation of my research I visited Qualcomm site and went to the specification page of new Snapdragons 200, 400, 600 and 800 chipsets. Here is the picture of S600 features:

As you can see, LTE modem is indeed integrated, and so will be present in GSM models as well. Here I repeat again - it will be disabled on GSM units and it wont be possible to switch it on/off in settings just like that. Enabling LTE on such units will be either not possible at all, or it will be possible by flashing M7_UL RUU to S-OFF device. Why this does not apply to HTC One X and its LTE brother, HTC One XL? Because One X is based on quad-core nVidia Tegra 3, while One XL is powered by dual-core Qualcomm Snapdragon S4. Yes, both are running different SoCs, because Tegra 3 doesnt have LTE modem integrated.

How to recognize if HTC One is GSM or LTE version? Looking back at some HTC devices like HTC One SV (C525u) you could noticed "4G LTE" text on the back cover. I wouldnt expect similar text this time, because the back case is not removable.

Do you already own LTE version of HTC One? Consider flashing my custom ROM from this site.

Have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) down this post!



Read More..

Thursday, March 17, 2016

Redtube APK Watch Redtube From Android Mobile XXX APK Porn APP Free Download

Redtube APK | Watch Redtube From Android Mobile | XXX APP | Porn APK Free Download

Redtube APK | Watch Redtube From Android Mobile | XXX APP | Porn APK Free Download

Redtube APK | Watch Redtube From Android Mobile | XXX APP | Porn APK Free Download




Watch RedTube videos

from your Android phone or tablet.
Worlds Most Popular Adult Video Tube Website is Now Accessible from Android App

Watch and Download videos on the go! Download the APK. Its free!
It is an 18+ Android App

Redtube APK | Watch Redtube From Android Mobile | XXX APK | Porn APK Free Download

Click Here to Free Download Redtube APK

Redtube APK | Watch Redtube From Android Mobile | XXX APK | Porn APK Free Download

Read More..

Friday, February 26, 2016

Custom InfoWindow for Google Maps Android API v2


To create Custom InfoWindow for Google Maps Android API v2:

- Make your Activity implements GoogleMap.InfoWindowAdapter.

- Override getInfoWindow(Marker marker) and getInfoContents(Marker marker).

The API will first call getInfoWindow(Marker) and if null is returned, it will then call getInfoContents(Marker). If this also returns null, then the default info window will be used.

The first of these (getInfoWindow()) allows you to provide a view that will be used for the entire info window. The second of these (getInfoContents()) allows you to just customize the contents of the window but still keep the default info window frame and background.

- setInfoWindowAdapter(this).


Modify MapsActivity.java from last example "Make GoogleMaps marker draggabe and detect moving marker".
package com.blogspot.android_er.androidstudiomapapp;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback,
GoogleMap.OnMapClickListener, GoogleMap.OnMapLongClickListener,
GoogleMap.OnMarkerDragListener, GoogleMap.InfoWindowAdapter {

private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

}

/**
* Manipulates the map once available.
* This callback is triggered when the map is ready to be used.
* This is where we can add markers or lines, add listeners or move the camera. In this case,
* we just add a marker near Sydney, Australia.
* If Google Play services is not installed on the device, the user will be prompted to install
* it inside the SupportMapFragment. This method will only be triggered once the user has
* installed Google Play services and returned to the app.
*/
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnMapClickListener(this);
mMap.setOnMapLongClickListener(this);
mMap.setOnMarkerDragListener(this);
mMap.setInfoWindowAdapter(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_addmarkers:
addMarker();
return true;
case R.id.maptypeHYBRID:
if(mMap != null){
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
return true;
}
case R.id.maptypeNONE:
if(mMap != null){
mMap.setMapType(GoogleMap.MAP_TYPE_NONE);
return true;
}
case R.id.maptypeNORMAL:
if(mMap != null){
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
return true;
}
case R.id.maptypeSATELLITE:
if(mMap != null){
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
return true;
}
case R.id.maptypeTERRAIN:
if(mMap != null){
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
return true;
}
case R.id.menu_legalnotices:
String LicenseInfo = GoogleApiAvailability
.getInstance()
.getOpenSourceSoftwareLicenseInfo(MapsActivity.this);
AlertDialog.Builder LicenseDialog =
new AlertDialog.Builder(MapsActivity.this);
LicenseDialog.setTitle("Legal Notices");
LicenseDialog.setMessage(LicenseInfo);
LicenseDialog.show();
return true;
case R.id.menu_about:
AlertDialog.Builder aboutDialogBuilder =
new AlertDialog.Builder(MapsActivity.this);
aboutDialogBuilder.setTitle("About Me")
.setMessage("http://android-er.blogspot.com");

aboutDialogBuilder.setPositiveButton("visit",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String url = "http://android-er.blogspot.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});

aboutDialogBuilder.setNegativeButton("Dismiss",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});

AlertDialog aboutDialog = aboutDialogBuilder.create();
aboutDialog.show();

return true;
}
return super.onOptionsItemSelected(item);
}

private void addMarker(){
if(mMap != null){

//create custom LinearLayout programmatically
LinearLayout layout = new LinearLayout(MapsActivity.this);
layout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
layout.setOrientation(LinearLayout.VERTICAL);

final EditText titleField = new EditText(MapsActivity.this);
titleField.setHint("Title");

final EditText latField = new EditText(MapsActivity.this);
latField.setHint("Latitude");
latField.setInputType(InputType.TYPE_CLASS_NUMBER
| InputType.TYPE_NUMBER_FLAG_DECIMAL
| InputType.TYPE_NUMBER_FLAG_SIGNED);

final EditText lonField = new EditText(MapsActivity.this);
lonField.setHint("Longitude");
lonField.setInputType(InputType.TYPE_CLASS_NUMBER
| InputType.TYPE_NUMBER_FLAG_DECIMAL
| InputType.TYPE_NUMBER_FLAG_SIGNED);

layout.addView(titleField);
layout.addView(latField);
layout.addView(lonField);

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Add Marker");
builder.setView(layout);
AlertDialog alertDialog = builder.create();

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
boolean parsable = true;
Double lat = null, lon = null;

String strLat = latField.getText().toString();
String strLon = lonField.getText().toString();
String strTitle = titleField.getText().toString();

try{
lat = Double.parseDouble(strLat);
}catch (NumberFormatException ex){
parsable = false;
Toast.makeText(MapsActivity.this,
"Latitude does not contain a parsable double",
Toast.LENGTH_LONG).show();
}

try{
lon = Double.parseDouble(strLon);
}catch (NumberFormatException ex){
parsable = false;
Toast.makeText(MapsActivity.this,
"Longitude does not contain a parsable double",
Toast.LENGTH_LONG).show();
}

if(parsable){

LatLng targetLatLng = new LatLng(lat, lon);
MarkerOptions markerOptions =
new MarkerOptions().position(targetLatLng).title(strTitle);

markerOptions.draggable(true);

mMap.addMarker(markerOptions);
mMap.moveCamera(CameraUpdateFactory.newLatLng(targetLatLng));

}
}
});
builder.setNegativeButton("Cancel", null);

builder.show();
}else{
Toast.makeText(MapsActivity.this, "Map not ready", Toast.LENGTH_LONG).show();
}
}

@Override
public void onMapClick(LatLng latLng) {
Toast.makeText(MapsActivity.this,
"onMapClick: " + latLng.latitude + " : " + latLng.longitude,
Toast.LENGTH_LONG).show();
}

@Override
public void onMapLongClick(LatLng latLng) {
Toast.makeText(MapsActivity.this,
"onMapLongClick: " + latLng.latitude + " : " + latLng.longitude,
Toast.LENGTH_LONG).show();

//Add marker on LongClick position
MarkerOptions markerOptions =
new MarkerOptions().position(latLng).title(latLng.toString());
markerOptions.draggable(true);

mMap.addMarker(markerOptions);
}


@Override
public void onMarkerDragStart(Marker marker) {
marker.setTitle(marker.getPosition().toString());
marker.showInfoWindow();
marker.setAlpha(0.5f);
}

@Override
public void onMarkerDrag(Marker marker) {
marker.setTitle(marker.getPosition().toString());
marker.showInfoWindow();
marker.setAlpha(0.5f);
}

@Override
public void onMarkerDragEnd(Marker marker) {
marker.setTitle(marker.getPosition().toString());
marker.showInfoWindow();
marker.setAlpha(1.0f);
}

@Override
public View getInfoWindow(Marker marker) {
return null;
//return prepareInfoView(marker);
}


@Override
public View getInfoContents(Marker marker) {
//return null;
return prepareInfoView(marker);

}


private View prepareInfoView(Marker marker){
//prepare InfoView programmatically
LinearLayout infoView = new LinearLayout(MapsActivity.this);
LinearLayout.LayoutParams infoViewParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
infoView.setOrientation(LinearLayout.HORIZONTAL);
infoView.setLayoutParams(infoViewParams);

ImageView infoImageView = new ImageView(MapsActivity.this);
//Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);
Drawable drawable = getResources().getDrawable(android.R.drawable.ic_dialog_map);
infoImageView.setImageDrawable(drawable);
infoView.addView(infoImageView);

LinearLayout subInfoView = new LinearLayout(MapsActivity.this);
LinearLayout.LayoutParams subInfoViewParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
subInfoView.setOrientation(LinearLayout.VERTICAL);
subInfoView.setLayoutParams(subInfoViewParams);

TextView subInfoLat = new TextView(MapsActivity.this);
subInfoLat.setText("Lat: " + marker.getPosition().latitude);
TextView subInfoLnt = new TextView(MapsActivity.this);
subInfoLnt.setText("Lnt: " + marker.getPosition().longitude);
subInfoView.addView(subInfoLat);
subInfoView.addView(subInfoLnt);
infoView.addView(subInfoView);

return infoView;
}

}


Reference: https://developers.google.com/maps/documentation/android-api/infowindows

Next:
- Detect user click on InfoWindow, by implementing GoogleMap.OnInfoWindowClickListener()


~ Step-by-step of Android Google Maps Activity using Google Maps Android API v2, on Android Studio

Read More..

Wednesday, February 24, 2016

Surfacing content from iOS apps in Google Search

Posted by Eli Wald, Product Manager

We’ve been helping users discover relevant content from Android apps in Google search results for a while now. Starting today, we’re bringing App Indexing to iOS apps as well. This means users on both Android and iOS will be able to open mobile app content straight from Google Search.

Indexed links from an initial group of apps we’ve been working with will begin appearing on iOS in search results both in the Google App and Chrome for signed-in users globally in the coming weeks:

How to get your iOS app indexed

While App Indexing for iOS is launching with a small group of test partners initially, we’re working to make this technology available to more app developers as soon as possible. In the meantime, here are the steps to get a head start on App Indexing for iOS:

  1. Add deep linking support to your iOS app.
  2. Make sure it’s possible to return to Search results with one click.
  3. Provide deep link annotations on your site.
  4. Let us know you’re interested. Keep in mind that expressing interest does not automatically guarantee getting app deep links in iOS search results.

If you happen to be attending Google I/O this week, stop by our talk titled “Get your app in the Google index” to learn more about App Indexing. You’ll also find detailed documentation on App Indexing for iOS at g.co/AppIndexing. If you’ve got more questions, drop by our Webmaster help forum.

Read More..

Monday, March 10, 2014

Happy Holidays from the Google Mobile Team!

We hope you have a safe and happy (and mobile!) holiday season. To wrap things up, here are some final holiday Mobile Tricks

Ted Smolsen shows how he does last-minute shopping using Google Docs and Google Maps for mobile...

George shows how he keeps in touch with far-off relatives with a cameraphone, Picasa Webalbums, and a WiFi-enabled picture frame

and after your holiday meal, try ChangChangYalls Full-O-lator to understand what your relatives are saying.


From the Google Mobile team, search for recipes on your phone, use mobile YouTube to keep antsy kids at the dinner table, and remember to search for local times to wish your far-off friends a happy new year. 

Read More..

Sunday, March 9, 2014

Rate and Review Businesses from Your Phone

Last Saturday I had dinner at a hole-in-the-wall Vietnamese restaurant in San Franciscos Richmond District. While it didnt look like much from the outside, the inside displayed a variety of Southeast Asian antiques and the walls were adorned with tapestries and bamboo. Our waiter was friendly and attentive and the phở was the best Ive had in the city -- just the right amount of spice tempered with bean sprouts and fresh cilantro. When I finished my meal, I took out my phone and wrote a five-star review on Google. By the time the check came, my review was already incorporated into the business listing.

Now you can share your opinions on local businesses by rating and reviewing them right from your mobile phone. Its easy, fast, and a great way to pass the time while youre waiting for the check! Heres all you have to do:
  • Go to www.google.com on your mobile browser
  • Search for the business by name and location like "pot pho sf ca”
  • Click on the business name on the results page to view details
  • Scroll down and click on "Sign in to write/edit your review"
This new mobile feature uses the same database found on Google Maps on the desktop, so when you rate and review a business from your phone, your opinions are also published to the millions of Google Maps users around the world. You can even click on the My Profile link in Maps to see all of the businesses youve reviewed.

For now, this feature is available on non-iPhone handsets in the US. Stay tuned for an iPhone version and international coverage.

Read More..