Get your Android Wear device to work cross-platform without hacking...
One of the major problems in the ongoing battle between Apple and Android is the lack of cross-platform integration. Once you’ve committed to one operating system, it becomes very diffi cult to move over as so much of your data, such as your music and photos, refuses to transfer across to the rival platform. Wearables have added another dimension to this issue as an iPhone user may want an Android smartwatch, but then they would not be able to use it with their phone. However, iPhone users can now use some basic functions on their Android Wear device thanks to two new apps. This tutorial will require you to use both an Android and Apple handset in the setup, but after that your smartwatch should be able to sync up with either of your phones. This tutorial will show you how to use both the BLE Utility app and the ‘Aerlink: Wear Connect for iOS’ app in order to turn your Android-only smartwatch into a device that can work with both Android and Apple handsets, giving you many more interesting options for your smartwatch.
1. Download relevant apps.
Download ‘Aerlink: Wear Connect for iOS’ onto your Android phone. It will appear as ‘Aerlink’ on your handset and smartwatch. Download BLE Utility on an iPhone.
2. Locate the Aerlink app
You should already have the Android Wear app downloaded and your watch synced with your Android phone. Next, tap on the watch’s homescreen where you will see the Aerlink app.
3. Activate iOS Service
Click the app. On the next screen, you will see a toggle for iOS Service. The slider will be grey; tap it to turn it blue. Your phone will now be able to see and pair with Apple handsets via Bluetooth.
4. Open BLE Utility
BLE Utility fi nds devices that use Bluetooth Low Energy. Without this, the iPhone still couldn’t locate the watch. Once the app has loaded, tap on Peripheral. This is where the watch will appear.
5. Search for iPhone
Once you had moved the slider, the watch should have told you it had disconnected –this is part of the plan. Tap the magnifying glass icon and it will search for compatible devices to pair with.
6. Pair the phone
When the watch and the phone find each other, this box should appear. Look on the watch’s screen for the code then type in the vacant box. Pairing with an Android phone is a bit simpler.
Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own customized Linux system entirely from source.
You may download the stable book in various formats from the stable book directory.
Even after they are running so many cashback offers already, they have now sent 120% cashback codes to their customer’s email address and phones.So just check your inbox and grab your Rs 60 cashback on Rs 50+ recharge now.......
Verify if you have got any message or email on your registered mobile and email address. Just give it a try and if you are lucky you may succeed.
How to get the cashback on freecharge ?
1.Download freecharge app –Android -Use my promocode RU3W7JI I iOS I Windows
2. Sign in /Register
3. Enter mobile number
4. Enter the amount & Apply coupon code –“M50″
5.Complete payment using debit/Credit card
6.That’s it. You will receive Rs 60 cashback within 24 hours.
Terms and Conditions-
Valid on all Successful Recharges/ Bill Payments till 30th November 2015.
Promocode can be redeemed only through specific accounts those who got SMS or E-mail regarding this offer.
Valid on min. transaction of Rs.50 & max cashback of Rs.60.
Promocode has to be applied to avail cashback offer.
Valid only once per user/credit/debit card.
Cashback to be offered in the form of EGV which can be redeemed in the next 6 months.
Not valid on transactions done via FreeCharge Balance and Netbanking.
This example work on last example of "Gallery-like RecyclerView + CardView example" to show how to add a button and OnClickListener in RecyclerView + CardView. A ImageButton is add over the photo on each cell. Once user click on the ImageButton, the corresponding OnClickListener, to show the info of the corresponding photo.
Modify layout/layout_cardview.xml to add a ImageButton.
Modify MyRecyclerViewAdapter.java: - get the reference to the Button in the constructor of RecyclerView.ViewHolder. - implement the OnClickListener in onBindViewHolder() of MyRecyclerViewAdapter.
public MyRecyclerViewAdapter(Context context, MainActivity mainActivity){ this.context = context; layoutInflater = LayoutInflater.from(context); itemsUri = new ArrayList<Uri>();
this.mainActivity = mainActivity; }
@Override public MyRecyclerViewAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) { CardView itemCardView = (CardView)layoutInflater.inflate(R.layout.layout_cardview, parent, false); return new ItemHolder(itemCardView, this); }
@Override public void onBindViewHolder(MyRecyclerViewAdapter.ItemHolder holder, final int position) { final Uri targetUri = itemsUri.get(position); holder.setItemUri(targetUri.getPath());
if (targetUri != null){
try { //! CAUTION ! //I'm not sure is it properly to load bitmap here! holder.setImageView(loadScaledBitmap(targetUri));
//display the file to be loadScaledBitmap(), //such that you can know how much work on it. mainActivity.textInfo.append(src.getLastPathSegment() + "\n");
// required max width/height final int REQ_WIDTH = 150; final int REQ_HEIGHT = 150;
Bitmap bm = null;
// First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeStream(context.getContentResolver().openInputStream(src), null, options);
// Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; bm = BitmapFactory.decodeStream( context.getContentResolver().openInputStream(src), null, options);
return bm; }
public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { // Raw height and width of image final int height = options.outHeight; final int width = options.outWidth; int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
// Calculate ratios of height and width to requested height and // width final int heightRatio = Math.round((float) height / (float) reqHeight); final int widthRatio = Math.round((float) width / (float) reqWidth);
// Choose the smallest ratio as inSampleSize value, this will // guarantee // a final image with both dimensions larger than or equal to the // requested height and width. inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio; }
return inSampleSize; }
@Override public int getItemCount() { return itemsUri.size(); }
public void setOnItemClickListener(OnItemClickListener listener){ onItemClickListener = listener; }
public OnItemClickListener getOnItemClickListener(){ return onItemClickListener; }
public interface OnItemClickListener{ public void onItemClick(ItemHolder item, int position); }
public void add(int location, Uri iUri){ itemsUri.add(location, iUri); notifyItemInserted(location); }
public void clearAll(){ int itemCount = itemsUri.size();
Last post show a example of "Add and Remove view dynamically", each Remove Button have its own OnClickListener object, each OnClickListener object refer to a specified view.
It's another approach: all Remove Buttons share a common OnClickListener object. Inside the OnClickListener, retrieve the associate addView from the trigger view by calling its getParent() method.
I have a old example of "Add and Remove view dynamically". Somebody ask how the Remove button keep track of the views. So I modify the example to explain in more details.
In this example, when user click on the Add button, it will create a child View, addView. The addView have a Button, buttonRemove. The buttonRemove have its own OnClickListener object. The OnClickListener object refer to the specified addView when it is created.
That means the OnClickListener object of the buttonRemove in the first child view("abc") not the same object in the second child view("abcdef"), not the same object in the third child view("abcdefghi")...All have its own individual OnClickListener object. And each OnClickListener object refer to a specified addView object. Such that it can keep track of the child Views, addView.
With speeds of 1GBps, the technology could enable a high-definition film to be downloaded in seconds
What is LiFi Then:- LiFi is a disruptive technology which will shift business models and create opportunities ripe for exploitation. The dominance and lifetime of LED lighting has created a need for new business models in the lighting industry. The need to offer services, including new payment and financing models, creates an unprecedented opportunity for LiFi.
Test Results: Li-Fi is 100 times Faster than Wi-Fi An Estonian startup company called Velmenni took the technology out of the laboratories and into the real-world offices, and industrial environments in Tallinn for the first time and, believe me, it's really, really fast.
"We are doing a few pilot projects in different industries where we can utilize the VLC technology,"Velmenni's CEO Deepak Solanki told IBTimes UK.
"Currently we have designed a smart lighting solution for an industrial environment where the data communication is done through the light. We're also doing a pilot project with a private client where we're setting up a Li-Fi network to access the Internet in [our] office space."
Who Invented Li-Fi ? Li-Fi technology was originated in 2011 by Professor Harald Haas of the University of Edinburgh, who demonstrated that, with a flickering light from a single LED, he could transmit more data than a cellular tower. Professor Haas, delivered a TED talk about his technology in 2011, which has attracted more than 1.7 million views.
YU YU6000 appears in GFXBench database, specifications revealed
YU YU6000 specs in GFXBench database
YU a Micromax subsidiary which is yet to complete one year of it's launch is planning ahead very seriously. Their upcoming device YU Yutopia (YU5050) is yet to launch but YU is already testing a new device YU6000 expected to be YU Yuphoria's successor.
The device's specifications were revealed on GFXBench a graphics benchmark. The device listed was running on SoC: MediaTek MT6753 octa core CPU @1.5GHz a deviation from all Qualcomm Snapdragon based devices from YU. It houses 3GB RAM with 16 GB ROM. The camera listed is 12 MP rear with 7 MP front snapper which could easily be 13MP/8MP combo. It will have 4.6" FHD screen. The device comes with usual set of sensors.
Refer to last example of "Simple HTTP server running on Android", it work on Xiaomi Redmi 2 running Android 4.4.4. But somebody report program stopped on Android 5 devices. So I re-test on Nexus 7 running Android 5.1.1. Yes, the app crash! caused by NullPointerException, because socket.getInetAddress() return null.
Modify MainActivity.java to capture socket.getInetAddress() before and after close():
It's my old exercise "Implement simple HTTP server running on Android". Somebody report it's not work, so I re-try it on Android Studio. Actually the code is same as before, and work as expected. Please notice both the server and client have to connect in the same WiFi network.
Updated@2015-11-26: This code NOT work on Android 5, may be all 5+ version. Fixed, refer next post "socket.getInetAddress() return null on Android 5". Work on Xiaomi Redmi 2, running Android 4.4.4
Visual Studio Dev Essentials is a new free developer offering from Microsoft. A free membership to this program gives you access to a range of benefits including developer tools and services, training and support. This video provides an overview of some key benefits, including Visual Studio Community, Visual Studio Team Services, Pluralsight training, and HackHands live programming help. You'll also learn the easiest way to get started and activate your benefits.
This video show how to download and run Android Studio 2.0 Preview from Canary Channel, in parallel with existing installed Android Studio 1.5. (The Emulator is seem still the old version, not the New Android Emulator)
Power User Menu of Windows 10 (and Windows 8) is a pop-up menu with shortcuts tosome usedful "Power User" Windows tools. You can easy access the "Old Control Panel" here.
To Open Power User Menu,
Right click the Start button, or
WIN+X: Pressing the WIN (Windows) key and the 'X' key together.
Are you or your any relative are facing any health diseases? Do you want to take some useful advice from India’s top class Doctors without paying anything?
Lybrate is a online website who provides free consultation advice to their customers by the top doctors of india.
YU Yunique launch few months ago in September with a price tag of ₹4,999 was the first device from YU to come with Pure Android. It was strange given Cyanogen was the selling point of YU Televentures. However Yunique was promised a Cyanogen OS later for those who prefer customization and tinkering with their phone. But despite being more than two months since the launch of Yunique there's no release in sight which matches with the delayed release of Cyanogen OS 12.1 for Yureka, Yureka Plus and Yuphoria.
CyanogenMod community has once again beaten the Cyanogen and released the first build of CyanogenMod 12.1 for Yunique with a codename 'jalebi'. If you've been waiting for Cyanogen experience on your Yunique, you can go ahead and download the nightlies from the CM website here. Be warned though that this is not official and may contain bugs and/or missing features. So do check the build log before installing.
If you'd like to know more about the CyanogenMod and differences between Cyanogen OS and CyanogenMod read this wiki here.
If you're not in the know YU has partnered with MotoGrapher Sundeep Gajjar, who'll be testing the phone on his Europe Tour with BMW i8. In the five days journey he'll test and showcase Yutopia capability. Today he has dropped first and a major reveal. He posted a photo taken from soon to be launc YU powerhouse Yutopia (or YU5050). Here's the one selfie from Yutopia.