I want to make a widget but it should be uninstallable or undeletable from home screen (if possible) like "google search" widget on nexus & moto phones. I searched it already but didn't find anything related to this. Is it really impossible to built such widgets?
Is it really impossible to built such widgets?
Yes. The decision of what widgets to allow users to add and remove is up to the home screen implementation, not you. So, for example, if on "nexus & moto phones" you install a third-party home screen, the Google search widget may or may not be available at all, let alone non-removable.
If you want to force people to have certain things on their home screen, write a home screen, then use heavy weaponry to force people to use that home screen. Note that the use of heavy weaponry may be illegal in some jurisdictions.
Related
I know about offsetChange function, but it doesn't work on such devices as Galaxy S4. I think it happens because of TouchWiz wrapper. So I need to find out another way to determine count of home screens.
Any help will be appreciated!
Android has main screen like desktop.
Android has a home screen. Whether it is "like desktop" or not depends upon the device and user.
There are several home screens, you can switch between them
It is unclear what you mean by this.
You might mean "an Android device can have multiple applications installed that each offer to be a home screen, and the user can choose which of those applications to use". In that case, creating an Intent for ACTION_MAIN and CATEGORY_HOME, then passing that to queryIntentActivities() on PackageManager, should give you the list of possible home screen implementations.
You might mean "all Android home screens offer some sort of swiping option to move to different portions of space". Some home screens offer this, and there is no standard way to find out. There is no requirement that a home screen offer the capability of swiping this way, let alone a requirement to supply an API for third-party apps to find out details about them.
I haven't found a definite answer to this yet. Lots of apps let you build/install custom lock screens without root, etc. It's just like installing an app. I found this in the dev guide: http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED
I assume that while this is running it would run just like any other app. But how would I "release" it to let the user get to their home screen? And do I need to handle things like incoming phone calls?
You can't (at least if you follow the rules) replace the secure lock screen. You can have a lock-screen like activity that will show up when the phone is locked. Use FLAG_SHOW_WHEN_LOCKED, but notice that your activity cannot be transparent - i.e. it cannot be a dialog.
Is there a way to display text on lock screen? Like the information about unread SMS messages or like that Music Player on lock screen with Play/Pause buttons.
Thanks
Yes and no. Their is no public API to create or modify the lock screen. Whoever built the OS version on your device created your lock screen. Some of the manufacturers or carriers have added additional things to the lock screen. I've seen some that tie in to the music app, HTC sense has a somewhat customizable lock screen. So if you were willing to create your own rom and flash it to your device you could write your own lockscreen. Short of that the best you can do is write an app that the system thinks is an alternate home screen that has some kind of lock mechanism before the actual home is displayed. Then you set your device not to use a lock screen(so that it won't show both) This is not a great solution however, there are bound to be more ways to access the device if you use a "fake" lock screen like that so if security is an issue I wouldn't mess with it at all.
You might be able to find one of these "fake" lock screens on the market that suites your needs or you could create one that is exactly what you want. You could also search around on XDA for a rom that works with your device, 3rd party roms may be more likely to have the features your looking for on the lock screen.
If you end up making a pretend lock screen by using the home replacement method I strongly suggest you do not distribute something like that on the market. It is insecure and the users are unlikely to realize that there is a difference between that and a legit lock screen. Plus there is no guarantee that this method doesn't get broken at some point.
I need a screen control (possibly but not mandatory an app widget) that will seat
on Android's homescreen and will always be visible to the user - even when he scrolls the homescreen to the next page.
Please help me if any body have done this before.
I think the only way you will be able to do this is if you implement your own Launcher.
The functionality that you're looking for, being able to place a static widget on every screen of the launcher regardless of how many screens they have, isn't currently available in Android, nor any of the launcher apps out there (Go launcher, ADW, Launcher pro etc) nor any of the versions of Android which have been rewritten by the phone manufacturers (HTC's Sense, Samsungs Touch Wiz etc)
It's a big job to write a Launcher yourself, but the stock Android Launcher code is available to play about with from https://android.googlesource.com.
I am looking for a way for when someone installs my application it goes in their "all applications menu". Then, after they run the app and go into the setup, when they click save on their options, it will create a shortcut on the home screen (not the all applications menu). Also, is it possible to have this shortcut not do the same thing as the other app? meaning that if I wanted to change the settings I could click on the app in the all applications menu and if I click on the app in the home screen it does something else.
First off, there's lots of different home screen implementations on Android. The stock Android one, Samsung, HTC and Motorola all have their own variants, then third party ones like Launcher Pro. All use different stores as to what to keep on the home screen, may provide different profiles for the home screen (home, work, etc).
Second, the home screen is prime real estate. And it is also the user's real estate. If there was programmatic access to the home screen, what happened to the Windows quick launch, desktop, favorites menu (in older versions of IE), and older pin area of the start menu (the very top of it in Win 95/98).
To quote Raymond Chen "I bet somebody got a really nice bonus for that feature". So, in short, even if it was possible, please don't. As awesome as you think your program is, the user might not think the same.