Sunday, March 31, 2013
Create your Treasure Map on Android
Refer to the post "Embed Google Map in WebView", you can create your own Treasure Map easily, by copy the link URL from http://maps.google.com/ with Treasure Mode selected, and replace it to mapPath in the MainActivity code.
Remark: I don't know will it back to normal tomorrow:)
FYI:
How to get Traffic come from International Space Station
If you have install Google Analytics, check your Real-Time report of Locations within today, you have 100% traffic from International Space Station!
Happy April Fools Day:)
Gallery Lock Pro v4.2.1 Apk Android
Hide Pictures/Videos!
Selected as the App of the Year by Times Magazine!
Gallery Lock manages photos and videos by individually hiding them and it is an app that is absolutely needed for protection of personal privacy. The product is one of the most popular apps in the world and is one of the top 10 apps sold on Google Market.
Features
• Management of photos by individual folders
• Can be used for both photos and videos
• Can be conveniently used with other gallery apps
• Stealth mode provided (a function that hides the icons)
• Beautiful designs
• Pattern lock provided
# (Important!) Before deleting the Lite version, undo the hide function of the photos and the videos. If you uninstall the program without undoing the hide function, the photos and videos will be lost.
# Google will make a pre-charge of $1 the first time a transaction is made on Google Market to verify the information on your credit card. This can be misunderstood as being charged twice but there is no need to worry as this pre-charge will not appear on your monthly statement.
# It is recommended that you purchase the app after checking to see if the free assessment Lite version runs properly.
# "Outgoing Call" permission is needed for Stealth Mode
# Method to recover photos when problems occur
If for some reason Gallery Lock does not run, recovery can be made by following the method below.
1) Uninstall Gallery Lock
2) Download Gallery Lock from the Market and install it.
3) Go Setting in the Gallery Lock, Tap "Find/Recover Missing files" menu.
4) The missing files will be recovered to /mnt/sdcard/DCIM/recover path.
5) run default Gallery application and check whether those files are recovered properly.
# Please send an email for any questions that you have. The developer of the app does not have authorization to reply to comments here.
(KW:photo valut,video valut,photovault,videovault,image lock,photo lock,image safe,photo safe,protector,stealth,hide photo,kii,stock,Keep Safe,kii safe,hide video,hide picture,vault,hide it,Hide Pictures in Stocks App,secret gallery,gallery,privacy,gallerylock,gallery private,gallery hide,hide gallery,quick pic,quick,ロック)
Click Here To Download
Direct Download Link - Direct Download Link
Labels:
app,
media and video,
photography,
Security,
Tools,
video
Google Nose!? Is it a April Fools Joke?
Is it a April Fools Joke? http://www.google.com/nose/
Introducing Google Nose
We're excited to announce our newest addition to Search: Google Nose. What do wet dogs smell like? Google Nose! How about victory? Google Nose! Try searching on Google for "wet dog" and explore other smells that people sniffed for, or visit google.com/nose to learn more. Happy smelling!
Introducing Google Nose
We're excited to announce our newest addition to Search: Google Nose. What do wet dogs smell like? Google Nose! How about victory? Google Nose! Try searching on Google for "wet dog" and explore other smells that people sniffed for, or visit google.com/nose to learn more. Happy smelling!
ADK Example: Control Arduino Due LED from Android device
Example to show how to implement with ADK, to control LED on Arduino Due from Android device.
Refer to my another blog for Arduino:
F18 Carrier Landing v5 Apk Android
Mobile Aircraft Carrier Landing Simulator.
Landing on a flight deck is one of the most difficult things a navy pilot will ever do. The flight deck only has about 500 feet (about 150 meters) of runway space for landing planes, which isn't nearly enough for the heavy, high-speed jets F/A-18 Hornet. Like a Top-Gun pilot enjoy afterburner, tonneau, loop.
You will be the pilot of F/A-18 Hornet, F-14 Tomcat and C-2A Greyhound aircraft flying in virtual environments with a stunning graphic. You will have the possibility to see again your performances with 30 seconds REPLAY function with the possibility of changing the point of view switching between several cameras and immediately share personal screenshots on Facebook and Twitter!
For a worldwide challenge!
Happy landing!
Includes:
* Multi-camera replay function.
* Missions: Gameplay Engine with six different missions.
Enjoy Start your flight from carrier, learn to land on the ground airbase, go for patrol and photo reconnaissance.
* Carrier/Airbase landing with advanced weather conditions settings (wind, rain, fog) and different scenarios (day, dawn, overcast, night).
* Comprehensive Tutorials.
* Free flight mode.
* Multi-touch controls.
* F/A-18 Hornet, F-14 and C-2A GreyhoundTomcat cockpit view mode.
* I.F.L.O.L.S. approaching system.
* Controls Simulation mode.
* Social image and score sharing.
Optimized for XPeria PLAY
Click Here To Download
Direct Download Link - Direct Download Link
Draw Polyline from touched location to MyLocation
In this exercise, Google Maps Android API v2 is implemented with MyLocation enabled. When user LongClick on the Map, a marker will be drawn, and a Polyline from touched location to MyLocation will be drawn if MyLocation is available.
To get MyLocation programmatically, you have to enable my-location layer by calling setMyLocationEnabled(true). Then call getMyLocation(), it returns the currently displayed user location, or null if there is no location data available. Please noted that MyLocation may be need long time to available.
MainActivity.java
layout
Download the files.
The series:
A simple example using Google Maps Android API v2, step by step.
To get MyLocation programmatically, you have to enable my-location layer by calling setMyLocationEnabled(true). Then call getMyLocation(), it returns the currently displayed user location, or null if there is no location data available. Please noted that MyLocation may be need long time to available.
MainActivity.java
package com.example.androidmapex;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.PolylineOptions;
import android.location.Location;
import android.os.Bundle;
import android.widget.Toast;
import android.app.Activity;
import android.app.FragmentManager;
public class MainActivity extends Activity{
private GoogleMap myMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment1 =
(MapFragment)myFragmentManager.findFragmentById(R.id.map1);
myMap = myMapFragment1.getMap();
myMap.setMyLocationEnabled(true);
myMap.setOnMapLongClickListener(myOnMapLongClickListener);
}
OnMapLongClickListener myOnMapLongClickListener =
new OnMapLongClickListener(){
@Override
public void onMapLongClick(LatLng point) {
myMap.addMarker(new MarkerOptions()
.position(point)
.title(point.toString()));
Location myLocation = myMap.getMyLocation();
if(myLocation == null){
Toast.makeText(getApplicationContext(),
"My location not available",
Toast.LENGTH_LONG).show();
}else{
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(point);
polylineOptions.add(
new LatLng(myLocation.getLatitude(), myLocation.getLongitude()));
myMap.addPolyline(polylineOptions);
}
}
};
}
layout
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<fragment
android:id="@+id/map1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5px"
class="com.google.android.gms.maps.MapFragment"/>
</LinearLayout>
Download the files.
The series:
A simple example using Google Maps Android API v2, step by step.
GuitarTapp PRO - Tabs & Chords v2.8.9 Apk Android
Android's best and most versatile guitar tablature viewer ! Throw away your song books and start jamming with GuitarTapp today! Search and view 500,000+ guitar tabs, chords, power tabs, bass tabs and drum tabs. Has autoscroll feature, large chords dictionary with diagrams and variations, save, open and edit tabs on SD card, transpose songs, create setlists, jam along with YouTube videos and local MP3's and watch video lessons. Free app updates included!
GuitarTapp is the only tab viewer capable of adjusting tabs to fit your screen's width, using the innovative IntelliWrap technique: this eliminates the need to scroll horizontally.
You'll find no other app with so many features, NO additional purchases required, FREE app updates and FREE tabs library updates.
Main features:
★ Quickly find chords, guitar tabs, power tabs, bass tabs and drum tabs for 350,000+ songs
★ Shows predictive search suggestions
★ Autoscroll: play along from the screen, using the song's duration to determine scroll speed
★ On-board chord dictionary: view chord diagrams and fingering alternatives for hundreds of guitar and ukulele chords, includes left-handed support and German chords mode. ★ Able to play the chords for reference
★ Transpose: quickly change the song key by transposing the chords up or down
★ IntelliWrap: eliminates horizontal scrolling by intelligently breaking up tabs and chords into screen-sized pieces
★ NEW: Able to play text tablature for quick reference!
★ Favorites: save tabs on your SD card
★ Setlists: create and manage setlists for live performances
★ Power Tab support (are converted to text tabs)
★ Rate tabs and share on Facebook and Twitter
★ Find songs or video lessons on YouTube, watch them from within GuitarTapp and jam along!
★ Save and load tabs to/from SD card, and edit them!
★ Open your own files
★ 'White on black' option available for tab viewing; reduces battery consumption for some screens
★ Portrait and landscape modes supported
★ Adjustable tabs font size
★ Supports tablets: very useful as teleprompter / autocue for live performances on stage
★ Send to e-mail feature
Buy now and get unlimited access to Android's ultimate guitar tabs collection! Additional keywords: Guitar Tabs, OnSong, SongBook.
Click Here To Download
Direct Download Link - Direct Download Link
Saturday, March 30, 2013
Multi Mount SD-Card v2.41 Apk Android
You go to your sdcard in your phone and PC simultaneously. ROOT ACCESS NEEDED AND MANDATORY.
The changes are visible immediately.
Don't use Android mount
This application is a widget, but not only :)
DISABLE AUTO-MOUNT FROM ALL APP (ex: WinAmp)
• Auto mount on USB connection
• Choose what sd-card is mounted (for mobile with 2 sd-card)
• Hide notification after a delay
• Scan media on unmount
• Vibrate on un/mount
• Option to mount without check if usb cable is present
• Disable media scan
English, French, Russian (Vladimir), Italian (Luca T.), Danish (Rasmus B.), German (Flo.), Polish (Kamil S.), Chinese (Jen J.), Turkish (Yaşar M.), Korean (MoonHee C.)
Click Here To Download
Direct Download Link - Direct Download Link
FriendCaster Pro for Facebook v5.3.3 Apk Android
FriendCaster Pro - the best Facebook experience on Android devices, with no ads!
Friendcaster is the #1 third party Facebook app available for Android with over 3,000,000 downloads and thousands of positive reviews.
Version 5.0 is sporting a beautiful interface, loads of Facebook features and the only real time Facebook notifications available through Google Play. When it comes to getting your Facebook “fix” on Android, Friendcaster is the way to go, and it’s free!
With Friendcaster we've also put in thousands of hours making the app VERY fast. Tired of waiting on the Facebook app to update? Go with Friendcaster!
If features are what you're after, we've got em:
★ All your favorite Facebook features (status updates, photos, messages, events, groups, checkins, etc)
★ Instant real time notifications (much faster than any other Facebook app)
★ Full news feed
★ Comment, post and like comments
★ 5 beautiful themes, and growing!
★ Quick access to posting status updates, photos and video
★ Quick access to checkins
★ Beautiful checkin map of all your nearby friend's locations
★ Easily view your news feed based on your Facebook friend lists
★ Displays your full size cover photo on the app opening screen
★ Support for multiple accounts
★ Hi-res photos directly in the news feed
★ Quick and easy setup assistant for notifications
★ Designed specifically for Android and Ice Cream Sandwich
★ And hundreds of additional features throughout the app... give it a try!
Click Here To Download
Direct Download Link - Direct Download Link
Embed Google Map in WebView
To load your custom Map, open it in PC, copy the Short URL in share option. It will be used later.
MainActivity.java, load mapPath with the Short URL in share option.
package com.example.androidwebmap;
import android.os.Bundle;
import android.app.Activity;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
WebView myWebView;
String mapPath = "https://maps.google.com/?ll=37.0625,-95.677068&spn=29.301969,56.513672&t=h&z=4";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView)findViewById(R.id.mapview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient());
myWebView.loadUrl(mapPath);
}
}
Modify layout to add a MapView.
<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<WebView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Notes:
- Permission of "android.permission.INTERNET" is need.
- Not all function can work on WebView! such as user cannot touch the marker on map.
Download the files.
Retain instance of MapFragment
In the last exercise of "Dual MapFragment", if the device orientation changed, the display area and zoom level will be kept, but the added marker will disappear.
In this exercise, we are going to modify map2 from last post, to retain instance after orientation changed.
To keep the markers after orientation changed, create custom MapFragment (RetainMapFragment), override onActivityCreated() call setRetainInstance(true).
Modify layout file to use "com.example.androidmapex.RetainMapFragment" class on map2.
Modify MainActivity to use define myMapFragment2 as RetainMapFragment.
Related:
- Retain data using Fragment API setRetainInstance()
Download the files.
The series:
A simple example using Google Maps Android API v2, step by step.
In this exercise, we are going to modify map2 from last post, to retain instance after orientation changed.
To keep the markers after orientation changed, create custom MapFragment (RetainMapFragment), override onActivityCreated() call setRetainInstance(true).
package com.example.androidmapex;
import android.os.Bundle;
import com.google.android.gms.maps.MapFragment;
public class RetainMapFragment extends MapFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
}
}
Modify layout file to use "com.example.androidmapex.RetainMapFragment" class on map2.
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<fragment
android:id="@+id/map1"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="2"
android:layout_margin="5px"
class="com.google.android.gms.maps.MapFragment"/>
<fragment
android:id="@+id/map2"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="3"
android:layout_margin="5px"
class="com.example.androidmapex.RetainMapFragment"/>
</LinearLayout>
Modify MainActivity to use define myMapFragment2 as RetainMapFragment.
package com.example.androidmapex;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
public class MainActivity extends Activity{
private GoogleMap myMap1, myMap2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment1 =
(MapFragment)myFragmentManager.findFragmentById(R.id.map1);
RetainMapFragment myMapFragment2 =
(RetainMapFragment)myFragmentManager.findFragmentById(R.id.map2);
myMap1 = myMapFragment1.getMap();
myMap2 = myMapFragment2.getMap();
myMap1.setOnMapLongClickListener(my1_OnMapLongClickListener);
myMap2.setOnMapLongClickListener(my2_OnMapLongClickListener);
}
OnMapLongClickListener my1_OnMapLongClickListener =
new OnMapLongClickListener(){
@Override
public void onMapLongClick(LatLng point) {
myMap1.addMarker(new MarkerOptions()
.position(point)
.title(point.toString()));
}
};
OnMapLongClickListener my2_OnMapLongClickListener =
new OnMapLongClickListener(){
@Override
public void onMapLongClick(LatLng point) {
BitmapDescriptor bitmapDescriptor =
BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE);
myMap2.addMarker(new MarkerOptions()
.position(point)
.icon(bitmapDescriptor)
.title(point.toString()));
}
};
}
Related:
- Retain data using Fragment API setRetainInstance()
Download the files.
The series:
A simple example using Google Maps Android API v2, step by step.
Android Pro Widgets v1.3.6 Unlocked Apk Android
Advanced widgets package with many themes and features
A set of powerful and extremely useful home screen widgets!
✓ Designed for both smart phones and tablets
✓ Widgets for Agenda & Calendar, Contacts, Bookmarks, Messaging, Facebook, Twitter, Google Reader (separately).
✓ Scrollable widgets (please read notes 2-3)
✓ For any issue please email us to dr.appche@gmail.com
■ Reviews:
“Do you want a set of customizable, skinnable and accessible widgets to your needs on the homescreen? Then look no further…” - Android UK News
“If you love periodically changing the look of your phone and the interface options, Android Pro Widgets is the number one program on the android market” - http://androidwidget.info
“APW is one of the most comprehensive and complete widget suites available” - Android Community
“The graphics are so polished that it feels as if Android Pro Widgets was included with the device” - HTC Source
“It’s my belief that the widgets included in Android Pro Widgets should have already been built into Android” - AndroidStatic
“Now This is What an Ice Cream Sandwich Widget Should Look Like” - AndroidSpin (refers to Modern ICS themes)
■ Available widgets:
☆ Agenda & Calendar
☆ People
☆ Bookmarks
☆ Messaging
☆ Timeline (Facebook + Twitter) [License required]
☆ APW Google Reader is available separately.
■ More tools:
☆ Quick Event - Quick Calendar event insertion tool w/ native language processing and speech recognition capabilities!
☆ Say What - little 4x1 widget to update Facebook/Twitter quickly from the home screen.
Click Here To Download
Direct Download Link - Direct Download Link
Friday, March 29, 2013
Dolphin Browser v9.3.2 Apk Android
Dolphin Browser is the FASTEST, EASIEST and most FUN mobile Web browser.
Dolphin Browser(Formerly Dolphin Browser HD) is the world's first Gesture, Sonar and Add-on enabled mobile web browser on Android.
★ #1 Mobile Web Browser on Android Market
★ Over 10,000,000 total downloads
★ #2 on CNET’s 100 Android Apps for 2011
★ #1 PC Mag’s "The 40 Best Free Apps for 2011"
★★★★★ Dolphin Browser's Gestures and sidebars make Web surfing fast, intuitive and fun while on the go. - USA Today
★★★★★ “…it’s a great, simple browser that feels more at home on a touchscreen device than pretty much anything else you’ll try. - Lifehacker
Features:
★ Sonar – Dolphin listens and lets you use your voice to search on the Internet, share on your favorite social networks, bookmark your favorite website, navigate and more.
★ Gesture - Let your inner artist out and create a personal Gesture (symbol) to access the mobile and desktop websites you use the most.
★ Add-on – Beef up your mobile Web/Internet browsing experience by installing the Add-ons for the tasks you need at your fingertips. With more than 60 and counting, Dolphin Add-ons enables any action to be done right within the browser. You can check out the Add-on features with 3 preloaded on your right Sidebar.
★ Webzine - Fast Web page loading, with no ads. Dolphin Webzine simplifies the way you read your favorite mobile content, from news to blogs and websites. Webzine is now available as an Add-on on the Android Market.
★ Speed Dial - Visit you favorite mobile and desktop websites on the go with one touch.
★ Tabbed browsing - No need to toggle between screens, tabbed browsing lets you open and switch between Web pages fast as lightning.
★ Sidebars - Make the best of mobile interface via Dolphin Sidebar.
We love hearing from you. Contact us at support@dolphin-browser.com and rate us today!
Website: www.dolphin-browser.com
Join Dolphin Facebook Fan page: http://www.facebook.com/DolphinFans
Follow Dolphin on Twitter: https://twitter.com/#!/DolphinBrowser
Here are a couple of cool features that you can add to your Dolphin Browser by installing Dolphin Add-ons:
• Dolphin Webzine
• Box for Dolphin
• Dolphin.fm
• Dolphin QRCode Share
• Bookmark to SD
• Dolphin YouTube Search
• Dolphin eBay Search
• Dolphin Alexa Rank
• PDF Viewer for Dolphin
• Web to PDF
• Dolphin Translate
• Dolphin Brightness
• Dolphin Password Manager Lite
• Password Manager Pro
• Lastpass for Dolphin Browser HD*Prem
• Xmarks for Dolphin HD*Premuim
• Dolphin Google Services
• Dolphin Reader
• Google Reader Notifier
• Softpedia.com RSS
• Dolphin Screen Cut
• Dolphin Tweet
• Bookmarks Widget
• Dolphin Desktop Toggle
Click Here To Download
APK File
Direct Download Link - Direct Download Link
License File
Download Link
SoundHound ∞ v5.3.0 Apk Android
Features:
◦ Blazing fast music recognition
◦ The world's only singing and humming recognition
◦ LiveLyrics: see lyrics move in time with the music
◦ Home screen widget allows you to identify music without launching the app
◦ No banner advertisements
◦ SoundHound Headlines: brings you free song streams, new artists, and more
◦ Real-time Facebook and Twitter updates from your favorite artists
◦ Facebook and Twitter sharing, listen-on-startup, and geotagging
◦ Buy links, YouTube videos, artist biographies, and much more
✧ Thank you to our 100 million+ fans and loyal users for making SoundHound a must-have App! ✧
★ Reviews and Honors for SoundHound ★
Top 10 Must-Have Android Apps - Bob Tedeschi, NY Times
Best Music Engagement App - BILLBOARD Music App Awards
Your top 10 Android Apps - "I love this app... unique in its class." - Jessica Dolcourt, CNET
The Best Android Apps - "There's no limit." - John Herrman, Gizmodo
"Genius, isn't it?" - B.B.C. World Radio
"This is amazing... insane, right?" - David Pogue of the NY Times
Note: Location is used to store where songs were discovered. It can be disabled from the Options menu.
Click Here To Download
Direct Download Link - Direct Download Link
Thursday, March 28, 2013
File Expert Manager Explorer Pro v5.1.4 Apk Android
Powerful File Manager/WIFI File Transfer Web & FTP/App Manager - ALL in ONE!
File Expert is an ultimate app for managing your files and other resources which stored on your Android phone and tablets. Files can be stored on local SD card, local WiFi network, or cloud storage servers like Google Drive, Dropbox, Box.net, SkyDrive etc. Designed for both advanced and entry level users.
You also can use File Expert as a sharing server to share your files to your friends over WiFi network. They can use web browser, FTP clients, another phone that support Bluetooth to access your File Expert powered devices.
File Expert is also a full-featured root file explorer for advanced users.Please note it's only available for Pro Key users only.
File Expert should be your daily tool and it's without any ADs!
File Expert has more than 6 millions of downloads and still fast growing everyday!
* All basic file operations - Copy, Paste, Move, Create and Rename your files and folders
* Clear and very easy to learn UI for most of users. Start work in just one second!
* FTP/HTTP Server - Share & Manage your files without a USB cable. Web management featuring a Windows style interface!
* Root access to system folders and files like Root Explorer. Remount /system to read write. Requires rooted phone.It's an exclusive feature for all Pro Key users only.
* Cloud Storage - Use one app to access various cloud services! Support Google Drive, Dropbox, Boxnet, SkyDrive and more!
* SMB, FTP, SFTP, FTPS, WebDAV and Bluetooth OBEX Client - Access your host computer from phone
* Bluetooth - Full-featured Bluetooth capabilities include OBEX FTP, OPP
* NFC Support. You can use NFC-enabled phone to transfer files and apps.
* WiFi Send. Directly send files via WiFi between File Expert powered phones
* App Manager - Uninstall/Backup apps. Support silent operations if on rooted devices
* Archive manager - Create and decompress ZIP archive, Decompress RAR. You can view your ZIP/RAR/GZIP/TAR/TGZ/BZ file just like accessing a folder and directly decompress unique files and folders
* Thumbnails - view thumbnails
* Text Viewer
* Image Viewer - supports both local and remote folder
* Search SD card, perform operations on search results
* Help your player to play media that stores on SMB share (your player needs to support HTTP streaming). WE are the ONLY file manager that can directly open some types of videos over SMB network
* File Picker - Let FE to help you anywhere you want :)
* Theme support - Choose themes that you love!
* DLNA - File Expert turn your smart phone to a full-featured DLNA media server!
* Many other very useful features are waiting for you to discover!
Click Here To Download
APK File
Direct Download Link - Direct Download Link
Pro Key
Direct Download Link - Direct Download Link
PBA Bowling 2 v2.0.18 Apk Android
Bowl against PBA® stars in this 3D game that includes tournaments, a spare challenge, online high scores, unlocked special bowling balls and much more! The biggest name in bowling, PBA, brings internationally recognized players, such as Walter Ray Williams Jr., and locations, including newly added Detroit, from the Lumber Liquidators PBA Tour directly to your device! Play against your favorite PBA stars or friends!
You can access online leaderboards directly from the app to see the top scores from around the world. Enjoy a full 3D bowling experience, interactive atmosphere, the ability to customize your bowling ball, and much more. It doesn’t matter if you’re a beginner or an expert, with three difficulty levels, this game caters to you!
Game Features:
• Online leaderboards
• Tracks stats and scoring for tournaments
• Customize bowling balls with weight, graphics, textures and special effects.
• May use accelerometer or touch screen.
• Play single game, tournament, or spare challenge.
• New Lumber Liquidator PBA Tour locations: Las Vegas, Tokyo, Detroit, Indianapolis, and Reno.
• Five lane types: Shark, Cheetah, Chameleon, Scorpion, and Viper.
Now Xperia PLAY optimized!
Click Here To Download
Direct Download Link - Direct Download Link
Dual MapFragment of Google Maps Android API v2
This exercise demonstrate how to embed two MapFragment in a Activity.
Modify layout file to have two fragment of "com.google.android.gms.maps.MapFragment".
Modify MainActivity.java to handle the Maps separately.
Download the files.
The series:
A simple example using Google Maps Android API v2, step by step.
Modify layout file to have two fragment of "com.google.android.gms.maps.MapFragment".
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<fragment
android:id="@+id/map1"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="2"
android:layout_margin="5px"
class="com.google.android.gms.maps.MapFragment"/>
<fragment
android:id="@+id/map2"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="3"
android:layout_margin="5px"
class="com.google.android.gms.maps.MapFragment"/>
</LinearLayout>
Modify MainActivity.java to handle the Maps separately.
package com.example.androidmapex;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
public class MainActivity extends Activity{
private GoogleMap myMap1, myMap2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment1 =
(MapFragment)myFragmentManager.findFragmentById(R.id.map1);
MapFragment myMapFragment2 =
(MapFragment)myFragmentManager.findFragmentById(R.id.map2);
myMap1 = myMapFragment1.getMap();
myMap2 = myMapFragment2.getMap();
myMap1.setOnMapLongClickListener(my1_OnMapLongClickListener);
myMap2.setOnMapLongClickListener(my2_OnMapLongClickListener);
}
OnMapLongClickListener my1_OnMapLongClickListener =
new OnMapLongClickListener(){
@Override
public void onMapLongClick(LatLng point) {
myMap1.addMarker(new MarkerOptions()
.position(point)
.title(point.toString()));
}
};
OnMapLongClickListener my2_OnMapLongClickListener =
new OnMapLongClickListener(){
@Override
public void onMapLongClick(LatLng point) {
BitmapDescriptor bitmapDescriptor =
BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE);
myMap2.addMarker(new MarkerOptions()
.position(point)
.icon(bitmapDescriptor)
.title(point.toString()));
}
};
}
Download the files.
The series:
A simple example using Google Maps Android API v2, step by step.
Google Maps Engine Lite (Beta) launched
Google is launching Google Maps Engine Lite (Beta) helping you create advanced custom maps to share with collaborators and also publish to the web. You can visualize and map more data, import locations from a spreadsheet, use layers to visualize different types of content, or simply draw and add places, lines, and shapes.
Visit: Log-in your google account and browse Google Maps Engine Lite
- Learn more about Maps Engine Lite (Beta)
Visit: Log-in your google account and browse Google Maps Engine Lite
Google Maps Engine Lite |
- Learn more about Maps Engine Lite (Beta)
Wednesday, March 27, 2013
Memory Booster (Full Version) v5.3 Apk Android
Memory Booster - Android RAM Optimizer to Speed Up Your Smartphone!
*Memory Booster tablet version is available in Android Market!*
Memory Booster is a powerful mobile memory & RAM boosting tool specially designed for both Android smartphone and tablet users. It is designed to tackle the difficult yet crucial problem of memory management for all Android devices. Memory Booster reclaims lost memory for your programs by defragmenting your device's memory and recovering memory leaks from poorly behaved applications.
Supported language: English, Korean, Japanese, Italian, French, Russian, Spanish, German, Simplified Chinese, Traditional Chinese
Features:
* Real-time Memory Status Report & Monitor
Memory Booster provides a live chart to demonstrate your device's total/free memory and current memory usage.
* Setting Your Performance Target
With Auto Boost Threshold set, Memory Booster keeps your memory higher than desired level, and act immediately if memory drops down.
* One-click Quick Memory Boosting
Besides automatic memory boosting, Memory Booster also allows you to manually boost your memory by Quick Boost.
* Auto-boosting in the Background
With Auto Boost Interval, Memory Booster runs in the background and automatically reclaims memory for your Android at interval.
* Android system crash protection
Memory Booster always watches your system resources and cleans up system memory once it reaches a critical point.
* And there is more…
Other features include embedded Task Killer, Whitelist Manager, Boost Level Manager & Memory Boost Log, which assist Memory Booster to perform more efficiently and friendly.
Kw: memory, ram, booster, optimize, boost, optimization, task killer, task manager, atk, taskiller, memory booster, ram booster, battery, save battery, battery booster, system manager, process kill, speed up, system speed, app killer, system panel, memory cleaner, honeycomb apps, tablet apps, honeycomb apps free download, tablet apps free download, honeycomb, android honeycomb, honeycomb applications, android 3.0, honeycomb download, tablet free apps, honeycomb free apps, 3.0, tablet app download, honeycomb app download
Click Here To Download
Direct Download Link - Direct Download Link
EVA - Virtual Assistant v2.80 Apk Android
Who should use EVA? If you are looking for an application that provides hands-free operation of your phone to open apps, read and reply to text messages and email, schedule calendar events and many more functions that you can perform using just your voice then EVA is right for you. If you are just looking for an electronic friend to chat with then please go with one of the Siri clones. On the other hand if you want a real virtual assistant that has useful functions that will make your life easier then please give EVA a try.
EVA is the best Voice Assistant for Android
EVA is the most full featured virtual assistant for Android.
EVA has all the functions you'd expect your assistant to perform plus some that you probably never knew were possible. Here is a list of some of the functions that you wont find in most of the competition:
★ Reading and replying to incoming text and email including Microsoft Exchange
★ Integration with Evernote
★ Home Automation with INSTEON. Turn on the lights and appliances, open the garage door and a whole lot more, all with voice commands or scheduled or based on your location.
★ Location based reminders. Remind you to do something based on your location.
★ Location based actions. Perform any function that EVA can do based on your current location. Have EVA automatically text your wife when you leave the office.
★ Time based actions. Perform any function that EVA can do on a set day and time
★ In car mode including wake up phrase
★ Custom voice shortcuts to your phone applications. Give your apps any name you want and open them using that name.
★ Voice bookmarks to your favorite web sites. Give your bookmarks any name you want and open them using that name.
★ Activate just by shaking your phone
★ Works with all Bluetooth Headsets
Click Here To Download
Direct Download Link - Direct Download Link
Save $350 on Apple 15.4" MacBook Pro quad-core Intel Core i7 2.7GHz
|
Stop IntentService
I have numbers of post about IntentService before; include Perform background processing with IntentService, Share IntentService among Fragments, Send data from IntentService to Activity, via additional Broadcast and Generate Notification in IntentService. This post is a good exercise to understand the life-cycle of IntentService.
To stop a IntentService, call the method stopService (Intent service). It request that a given application service be stopped. If the service is not running, nothing happens. Otherwise it is stopped. Note that calls to startService() are not counted -- this stops the service no matter how many times it was started. So imple? not at all.
In this exercise, buttons are added to start and stop IntentService. It can be noted that:
Layout file
MainActivity.java
MyIntentService.java
Need to include <service> of "MyIntentService" in AndroidManifest.xml, refer to the post "Send data from IntentService to Activity, via additional Broadcast".
Download the files.
To stop a IntentService, call the method stopService (Intent service). It request that a given application service be stopped. If the service is not running, nothing happens. Otherwise it is stopped. Note that calls to startService() are not counted -- this stops the service no matter how many times it was started. So imple? not at all.
In this exercise, buttons are added to start and stop IntentService. It can be noted that:
- If you click the "Start IntentService" multi times, only one request will be processed at a time, All requests are handled on a single worker thread. The extra requests will be place in a queue.
- If you click the "Start IntentService" multi times, only ONE call of stopService() is need to stop all request.
- If you remove the checking on the boolean stopped, in onHandleIntent() of MyIntentService.java; call stopService() will call onDestroy() of MyIntentService, but the code in onHandleIntent() will keep running until finish by itself. Because onHandleIntent() is running on another worker thread.
Layout file
<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start IntentService" />
<Button
android:id="@+id/stop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Stop IntentService" />
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:max="10"
android:progress="0"/>
</LinearLayout>
MainActivity.java
package com.example.androidintentservice;
import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends Activity {
Button buttonStart, buttonStop;
TextView textResult;
ProgressBar progressBar;
private MyBroadcastReceiver myBroadcastReceiver;
private MyBroadcastReceiver_Update myBroadcastReceiver_Update;
Intent intentMyIntentService;
int numberOfIntentService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textResult = (TextView)findViewById(R.id.result);
progressBar = (ProgressBar)findViewById(R.id.progressbar);
buttonStart = (Button)findViewById(R.id.start);
buttonStop = (Button)findViewById(R.id.stop);
buttonStart.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
numberOfIntentService++;
//prepare String passing to intentMyIntentService
String msgToIntentService = "Android-er: " + numberOfIntentService;
//Start MyIntentService
intentMyIntentService = new Intent(MainActivity.this, MyIntentService.class);
intentMyIntentService.putExtra(MyIntentService.EXTRA_KEY_IN, msgToIntentService);
startService(intentMyIntentService);
}});
buttonStop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
if(intentMyIntentService != null){
stopService(intentMyIntentService);
intentMyIntentService = null;
}
}});
numberOfIntentService = 0;
myBroadcastReceiver = new MyBroadcastReceiver();
myBroadcastReceiver_Update = new MyBroadcastReceiver_Update();
//register BroadcastReceiver
IntentFilter intentFilter = new IntentFilter(MyIntentService.ACTION_MyIntentService);
intentFilter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(myBroadcastReceiver, intentFilter);
IntentFilter intentFilter_update = new IntentFilter(MyIntentService.ACTION_MyUpdate);
intentFilter_update.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(myBroadcastReceiver_Update, intentFilter_update);
}
@Override
protected void onDestroy() {
super.onDestroy();
//un-register BroadcastReceiver
unregisterReceiver(myBroadcastReceiver);
unregisterReceiver(myBroadcastReceiver_Update);
}
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String result = intent.getStringExtra(MyIntentService.EXTRA_KEY_OUT);
textResult.setText(result);
}
}
public class MyBroadcastReceiver_Update extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int update = intent.getIntExtra(MyIntentService.EXTRA_KEY_UPDATE, 0);
progressBar.setProgress(update);
}
}
}
MyIntentService.java
package com.example.androidintentservice;
import android.app.IntentService;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.widget.Toast;
public class MyIntentService extends IntentService {
private static final int MY_NOTIFICATION_ID=1;
private static final int MY_DESTORY_NOTIFICATION_ID=2;
NotificationManager notificationManager;
Notification myNotification;
public static final String ACTION_MyIntentService = "com.example.androidintentservice.RESPONSE";
public static final String ACTION_MyUpdate = "com.example.androidintentservice.UPDATE";
public static final String EXTRA_KEY_IN = "EXTRA_IN";
public static final String EXTRA_KEY_OUT = "EXTRA_OUT";
public static final String EXTRA_KEY_UPDATE = "EXTRA_UPDATE";
String msgFromActivity;
String extraOut;
boolean success;
boolean stopped;
public MyIntentService() {
super("com.example.androidintentservice.MyIntentService");
success = false;
stopped = false;
}
@Override
protected void onHandleIntent(Intent intent) {
//get input
msgFromActivity = intent.getStringExtra(EXTRA_KEY_IN);
extraOut = "Hello: " + msgFromActivity;
//total 10 sec
for(int i = 0; i <=10; i++){
try {
Thread.sleep(1000); //every 1 sec
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//--- Try to comment it ---//
if(stopped){
break;
}
//send update
Intent intentUpdate = new Intent();
intentUpdate.setAction(ACTION_MyUpdate);
intentUpdate.addCategory(Intent.CATEGORY_DEFAULT);
intentUpdate.putExtra(EXTRA_KEY_UPDATE, i);
sendBroadcast(intentUpdate);
PendingIntent pendingIntent_doNothing = PendingIntent.getActivity(
getApplicationContext(),
0,
new Intent(), //empty Intent do nothing
Intent.FLAG_ACTIVITY_NEW_TASK);
//generate notification
String notificationText = String.valueOf((int)(100 * i / 10)) + " %";
myNotification = new NotificationCompat.Builder(getApplicationContext())
.setContentTitle("Progress")
.setContentText(notificationText)
.setTicker("Notification!")
.setWhen(System.currentTimeMillis())
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(pendingIntent_doNothing)
.build();
notificationManager.notify(MY_NOTIFICATION_ID, myNotification);
}
success = true;
myNotification = new NotificationCompat.Builder(getApplicationContext())
.setContentTitle("Success Finished")
.setContentText("Successful Finished")
.setTicker("Successful Finished")
.setWhen(System.currentTimeMillis())
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.build();
notificationManager.notify(MY_NOTIFICATION_ID, myNotification);
//return result
Intent intentResponse = new Intent();
intentResponse.setAction(ACTION_MyIntentService);
intentResponse.addCategory(Intent.CATEGORY_DEFAULT);
intentResponse.putExtra(EXTRA_KEY_OUT, extraOut);
sendBroadcast(intentResponse);
}
@Override
public void onCreate() {
super.onCreate();
notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
}
@Override
public void onDestroy() {
Notification onDestroyNotification;
String notice;
stopped = true;
if(success){
notice = "onDestroy with success";
onDestroyNotification = new NotificationCompat.Builder(getApplicationContext())
.setContentTitle(notice)
.setContentText(msgFromActivity)
.setTicker(notice)
.setWhen(System.currentTimeMillis())
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.build();
}else{
notice = "onDestroy WITHOUT success!";
onDestroyNotification = new NotificationCompat.Builder(getApplicationContext())
.setContentTitle(notice)
.setContentText(msgFromActivity)
.setTicker(notice)
.setWhen(System.currentTimeMillis())
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.build();
}
notificationManager.notify(MY_DESTORY_NOTIFICATION_ID, onDestroyNotification);
Toast.makeText(getApplicationContext(), notice, Toast.LENGTH_LONG).show();
super.onDestroy();
}
}
Need to include <service> of "MyIntentService" in AndroidManifest.xml, refer to the post "Send data from IntentService to Activity, via additional Broadcast".
Download the files.
Create a PendingIntent for Notification to do nothing
Refer to the last post "error of using NotificationCompat.Builder, IllegalArgumentException: contentIntent required", if you want no action perform when user click on the Notification, you can insert a PendingIntent with a dummy Intent.
Example:
Example:
PendingIntent pendingIntent = PendingIntent.getActivity(
MainActivity.this,
0,
new Intent(), //Dummy Intent do nothing
Intent.FLAG_ACTIVITY_NEW_TASK);
myNotification = new NotificationCompat.Builder(context)
.setContentTitle("Exercise of Notification!")
.setContentText("http://android-er.blogspot.com/")
.setTicker("Notification!")
.setWhen(System.currentTimeMillis())
.setContentIntent(pendingIntent)
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.build();
Train Crisis HD v2.1.1 Apk Android
A puzzle and addictive strategy game where you have to prove your reflexes.
Would you like to travel through the history of the railroad? This amazing game lets you play in two different railroad eras, where your goal is to overcome all the obstacles that appear on each level and guide each colored train toward its corresponding destination
Train: "a series of railway carriages or wagons moved as a unit by a locomotive or by integral motors".
Crisis: "a time of intense difficulty or danger".
With these two definitions we launch Train Crisis, a puzzle and addictive strategy game with HD graphics where you have to prove your quick mind and reflexes in full 3D environment.
Features:
2 Eras of railroad history (Industrial Era and Far West Era).
Spectacular High-definition 3D environments that recreate perfectly both eras with many details as vegetation, animals, mountains, rocks, tunnels, banks, etc.
Train Crisis provides 42 levels for players to conquer (currently available).
A star rating system to assess your skills.
Extra unlocking levels that will require you to have a certain number of stars.
The addictive gameplay and challenge of increasing levels of difficulty kept you hooked.
4 colored trains and over 6 railway wagons.
You must interact with several elements to get past the level: changing junctions; timed traffic lights; trap tunnels; transportation of money; ghost trains and parts of the track obstructed with rocks you must blow up.
Spectacular colorful graphics effects with explosions of trains and rocks.
Music and 3D sound. Sound effects in real time depending on where elements are located in the screen and different music for each world.
Train Crisis's full version will be updated shortly with 2 new eras and many more levels available.
Train Crisis has been developed with Unity3D, the most optimized game engine for mobile device.
Data Location: SDcard/Android/Obb
Click Here & Download
APK File
Direct Download Link | Direct Download Link
SD Data files
Direct Download Link | Direct Download Link
error of using NotificationCompat.Builder, IllegalArgumentException: contentIntent required
Refer to the exercise "Example of using NotificationCompat.Builder"; if the statement of new NotificationCompat.Builder...build() modified to remove .setContentIntent(pendingIntent), error of java.lang.IllegalArgumentException: contentIntent required MAY be thrown.
It will have no error in compile time, and no error when run on HTC One X (Android 4.1.1) and HTC Fly (Android 3.2.1). But error when run on Nexus One (Android 2.3.6), with error:
03-27 21:33:40.631: D/AndroidRuntime(24248): Shutting down VM
03-27 21:33:40.631: W/dalvikvm(24248): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-27 21:33:40.651: E/AndroidRuntime(24248): FATAL EXCEPTION: main
03-27 21:33:40.651: E/AndroidRuntime(24248): java.lang.IllegalArgumentException: contentIntent required: pkg=com.example.androidnotificationbuilder id=1 notification=Notification(vibrate=null,sound=default,defaults=0x1,flags=0x10)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Parcel.readException(Parcel.java:1326)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Parcel.readException(Parcel.java:1276)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.NotificationManager.notify(NotificationManager.java:111)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.NotificationManager.notify(NotificationManager.java:91)
03-27 21:33:40.651: E/AndroidRuntime(24248): at com.example.androidnotificationbuilder.MainActivity$1.onClick(MainActivity.java:52)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.view.View.performClick(View.java:2485)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.view.View$PerformClick.run(View.java:9080)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Handler.handleCallback(Handler.java:587)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Handler.dispatchMessage(Handler.java:92)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Looper.loop(Looper.java:130)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-27 21:33:40.651: E/AndroidRuntime(24248): at java.lang.reflect.Method.invokeNative(Native Method)
03-27 21:33:40.651: E/AndroidRuntime(24248): at java.lang.reflect.Method.invoke(Method.java:507)
03-27 21:33:40.651: E/AndroidRuntime(24248): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-27 21:33:40.651: E/AndroidRuntime(24248): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-27 21:33:40.651: E/AndroidRuntime(24248): at dalvik.system.NativeStart.main(Native Method)
If you want no action perform when user click on the Notification, you can create a PendingIntent with empty Intent for Notification to do nothing.
It will have no error in compile time, and no error when run on HTC One X (Android 4.1.1) and HTC Fly (Android 3.2.1). But error when run on Nexus One (Android 2.3.6), with error:
03-27 21:33:40.631: D/AndroidRuntime(24248): Shutting down VM
03-27 21:33:40.631: W/dalvikvm(24248): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-27 21:33:40.651: E/AndroidRuntime(24248): FATAL EXCEPTION: main
03-27 21:33:40.651: E/AndroidRuntime(24248): java.lang.IllegalArgumentException: contentIntent required: pkg=com.example.androidnotificationbuilder id=1 notification=Notification(vibrate=null,sound=default,defaults=0x1,flags=0x10)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Parcel.readException(Parcel.java:1326)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Parcel.readException(Parcel.java:1276)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.NotificationManager.notify(NotificationManager.java:111)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.NotificationManager.notify(NotificationManager.java:91)
03-27 21:33:40.651: E/AndroidRuntime(24248): at com.example.androidnotificationbuilder.MainActivity$1.onClick(MainActivity.java:52)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.view.View.performClick(View.java:2485)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.view.View$PerformClick.run(View.java:9080)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Handler.handleCallback(Handler.java:587)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Handler.dispatchMessage(Handler.java:92)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.os.Looper.loop(Looper.java:130)
03-27 21:33:40.651: E/AndroidRuntime(24248): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-27 21:33:40.651: E/AndroidRuntime(24248): at java.lang.reflect.Method.invokeNative(Native Method)
03-27 21:33:40.651: E/AndroidRuntime(24248): at java.lang.reflect.Method.invoke(Method.java:507)
03-27 21:33:40.651: E/AndroidRuntime(24248): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-27 21:33:40.651: E/AndroidRuntime(24248): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-27 21:33:40.651: E/AndroidRuntime(24248): at dalvik.system.NativeStart.main(Native Method)
If you want no action perform when user click on the Notification, you can create a PendingIntent with empty Intent for Notification to do nothing.
Subscribe to:
Posts (Atom)