Is-there-any-way-to-prevent-an-android-app-from-being-removed
2011-06-01 10:54
507 查看
http://stackoverflow.com/questions/495734/is-there-any-way-to-prevent-an-android-app-from-being-removed
Reference: http://www.textecution.com/
oldest
votes
Reference: http://www.textecution.com/
Does anyone know if there's a way to either keep the user from uninstalling an app from an Android phone or reinstall it on removal? Before you flame me, please know that I have an app that's intended to be installed on the phone by a parent/employer/etc. and has a password-protected settings screen; the user would need to enter the password to remove the app. ![]() android g1
| |||
5 Answers
activeoldest
votes
up vote 3 down vote accepted | On the topic of email notification when your service is uninstalled-- A lot of security software runs multiple processes which monitor each other, so that it's more difficult to shut the system down. You could do something similar with two services installed, each monitoring to see if the other is installed. If something goes wrong, they can send off the e-mail.
| ||
up vote 5 down vote | What if you have it send an email alert to a registered email address on uninstall?
| ||||||||||||
more comments |
up vote 2 down vote | Not without modifying the kernel, or reducing the user priviledges on the device. Think of it as a Linux computer, where the cell phone user has root. Can you prevent them from removing your app? No. But you can make it painful and difficult enough that it's not worth it, and include alerts that indicate it has been removed. First, I would modify the software so it requests and successfully answers a cryptographic challenge/response periodically from a remote server - daily should be enough, and wouldn't impact battery use. This way your server knows when it has been disabled (could be sold as an additional $10/yr service charge) and you can alert the purchaser. Second, I would tie the software into the system at the driver level so that removal also removes text services. There are drivers or services that the texting application uses that could be replaced with your custom versions, and on removal would render the texting app useless. Chances are good that you already tie into the system in a similar way to block the texting app (and other apps) while traveling too fast. Third, I would consider installing a monitoring program that runs as a separate process (check out how the latest viruses operate for clues). It would check to make sure that not only is the app still running, but it's running the latest version, and there isn't a GPS simulator or other program that prevents your app from getting correct GPS data. I'm curious how you differentiate between the driver texting and a friend in the passenger seat texting on the driver's cell, though.
| ||||
|
up vote 2 down vote | I'd highly doubt that's possible. The permission structure of Android is going to give the user full control over what's happening on their phone (to some degree) and not being able to uninstall an app would be a pretty large security risk. If you modified the Android core, it would probably be possible, but if you're trying to force something onto an end-user, that's a bad idea. Maybe there's a better approach to what you're doing? If there's some required functionality in the app to keep the user from uninstalling it, that would be a small incentive to keep the app, but there's no way to keep a user from removing something they really don't want. You could have the app report uptime to a seperate server so you could be notified if the app was removed, but I think that's as far as you're going to get.
| ||||
|
up vote 0 down vote | Well, solution would be to mount /system/apps/ to be writable and put your app there once. When you restart the phone it would automaticly install it and prevent a user from uninstalling (as every app in that folder, list it to see it). That's how mobile providers force user to have they app. However, user could always delete this app by rooting + mounting /system/app/ to writable and then to delete. But "normal parents" can't do that :) Regards P.S. This question is two years old, I've notice it just now... :S
|
相关文章推荐
- Is there a way to add a badge to an application icon in Android?
- Is there a way to add a badge to an application icon in Android?
- Is there any way to define a min and max value for edittext in android?
- 关于android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an app
- Is there a way to check if android WindowManager already contains a view?
- How to remove native support from an Android Project in eclipse because eclipse is showing errors in
- Android Tutorial: How To Post Data From An Android App To a Website
- Android studio编程时出现的错误:unspecified on project app resolves to an APK archive which is not supported
- Is there a way to get a Cursor from a GreenDao Query object?
- Is there any way to get detailed error information for Win32 errors when using Platform Invoke?
- Is there any best way to reduce the size of ibdata in mysql.?
- Is there a way to customize Android default tabs
- There was a problem getting an AppDomain to run the transformation from the host. The process cannot
- Q:Is there any way to define what the "Open Resource" dialog in Eclipse should show?
- Is there any way to kill a Thread in Python?
- android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
- How to Use FontAwesome in an Android App(把 icons 变得和 text 一样)
- Android自用-----WindowManager$BadTokenException: Unable to add window -- token null is not for an application
- Package supports: Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk