Detecting screenshot on 4.0+ android devices - android

I have an application in which I want to be able to detect if a screenshot has been taken. The only way of doing this I could find involved utilizing a file observer. Is there any library which tackles this problem yet?
Alternatively, if I write my own library and use the file observer I need to be aware of the many different locations for screenshots on different devices. Is there a place where I can find a comprehensive list of these locations?
I am fully aware that this will not be 100% secure.

Related

How to create an Auto Clicker app which can click on other apps?

I have seen so many apps that provide auto tapping feature. But they don't provide some specific customization so I decided to create a one. I have seen many tutorials that offers auto tapping, but they are supposed to be used in the same app. But I want to create an auto tapping app that can click on other app's View. I am an intermediate java developer but new to Android studio, so I don't know much about Android APIs. Is there any class or package which can provide this feature. For more clearance, I want to do auto tap, when the color at the specific location on screen, (213, 120) for instance, becomes green.
Thanks in advance!
I am not an expert on the subject, I have experience as a BackEnd developer, I am new to the Android world, just like you I am interested in building an app to automate some farming mechanics in Android games with specific behaviors, so I investigated on the subject and the solution you are looking for is the AccessibilityService API, from Android 8.0 (API level 26) it includes several functionalities to make touches without the need for Root, I leave you links with examples of some open source repos that can guide you.
https://developer.android.com/guide/topics/ui/accessibility/service#continued-gestures (Doc)
https://github.com/nestorm001/AutoClicker (Old and abandoned project, but has the functionality of touches)
https://github.com/pylapp/SmoothClicker (A more mature App but need root, it can be helpful to guide you in how to build the UI)
For the detection in the change of the pixel I still do not have a concrete answer, I keep looking, maybe obtaining a dump of the screen every X time and validate the pixels on that is the way but it is still uncertain if it is the way to go.
Something like How to record screen and take screenshots, using Android API?.
I know that you can get a bitmap dump of the screen if you have the activity, but it's not the case, however some class in the following package may be helpful https://developer.android.com/reference/kotlin/android/graphics/package-summary.
I'm currently working in my own implementation, when I have something to show I will gladly share it.

Face Recoginition Android/iOS

I want to do Face recoginition (Not Face Detection) in my Android and iOS app. I have studied a lot on Web and found following possible solutions:
1.) openCV: I don't want to go into writing my own API using this. Also, I don't have prior experience in JNI for Android.
2.) Betaface API So far this is good.
3.) Sky Biometrics is also Good.
Now, I am searching for the solution from 3-5 days and came to know that I can use above API (so far I have decided to purchase license for Sky Biometrics). And this API will provide me a list of Features for the faces it recognised.
But, Now I am confused That how to use these features and save in my local data base to recognise faces from the pictures.So My queries are following
1.) How to convert Face features to Actual working Face recognition API means What is the actual algo or solution I can use to merge diffrent face features of a same person to identify him correctly.
2.) Uploading images and then creating database for Face-features set is a very time taking process. Do any one knows any Android/iOS Face Recoginition SDK to do this so that I can do this accurately and timely with no or less time taking process.
3.) Both solution-2 and 3 can be used with Images. Is there any other solution is available which can do the same with less efforts but with more accuracy.
OpenBR may be also interesting for you: http://openbiometrics.org/
Finally I am using Rekognition API. And this is good enough to serve my purpose.

Use Android phone camera to perform an action?

I would like to know if it is possible to register a movement close to the camera, and then perform some actions inside an app.
This was possible on Symbian, so it should be also on newer Android-powered phones. The problem is I can't find any resource to get started with.
Does anybody have any ideas on where I should start?
Looks like there's a library created over on Google Code: http://code.google.com/p/android-motion-detection/
If you want something a little more powerful, you can also run OpenCV on Android: http://opencv.org/android Don't think you will be able to do anything detecting the distance without another camera or a different type of sensor (like sonar) though.
As a bonus, depending on what your are trying to achieve, there's even a nice API doesn't involve anything additional to the Android SDK: http://developer.android.com/reference/android/media/FaceDetector.Face.html

Porting SWFs to Android devices

we have a number of SWFs we want to repurpose as Android apps, but are having trouble finding some information.
I realise that Android is spread across a lot of different Hardware but are there any standardised resolutions? If not how would you go about resizing the Stage depending on the screen?
Secondly can SWFs be uploaded to the Android store and if not what is the best way to mantain the SWF functionality whilst converting it to a format that can?
Any other advice you think important would be helpful.
Thanks.
Here's the Android docs (with some representative screen sizes at the foot of the page): http://developer.android.com/guide/practices/screens_support.html
First of all, in order to deploy your app to the Android store you need to publish it as an AIR file. (Note that this needs the Android device to have AIR on it: https://market.android.com/details?id=com.adobe.air).
You can get the screen resolution for the app using the flash.system.capabilities:
trace(Capabilities.screenResolutionX);
trace(Capabilities.screenResolutionY);
or via flash.display.screen when using AIR as this contains additional screen information.
Finally you also need to bear in mind the screen orientation (see http://www.adobe.com/devnet/flash/articles/screen_orientation_apis.html). You may want to consider multi-touch as well, and review you app from the UI point of view to take on board the different user experience of Android compared with the web.
Good luck!
Try GAF Converter. it is goood solution for porting swf files to Android. it supports numerous features and I think it will help you.

How does sharing application components happen in android?

it's been some time now, since I started reading about android.
I've already made a few basic applications, but I still miss something: How is actually sharing application component being done?
This is what the Android Dev Guide says:
A central feature of Android is that one application can make use of elements of other applications (provided those applications permit it). For example, if your application needs to display a scrolling list of images and another application has developed a suitable scroller and made it available to others, you can call upon that scroller to do the work, rather than develop your own. Your application doesn't incorporate the code of the other application or link to it. Rather, it simply starts up that piece of the other application when the need arises.
I think I came across some question like this, but I think I'm still confused.
Is the only way of getting such a 'private application' information to contact the developers of that application?
Is information about the data that the application operates with private, too?
If it is described in the AndroidManifest.xml file is it available for the other applications, or it is available only to Android?
When I started satisfying my interest in Android - one of the things that grabbed me was the impression of immense interoperability...
:)
Have I been wrong or I still haven't found the way?
Thanks!
How is actually sharing application component being done?
That depends entirely on what you consider an "application component" to be, and what you consider "sharing" to be.
This is what the Android Dev Guide says
That is a fairly bad piece of the documentation. Here is how I would write it:
A central feature of Android is that one application can make use of components (e.g., activities, services) of other applications (provided those applications permit it). For example, if your application needs to display a list of contacts and another application has developed an activity that does just that and made it available to others, you can call upon that activity to do the work, rather than develop your own. Your application doesn't incorporate the code of the other application. Rather, it simply starts up that piece of the other application when the need arises.
Is the only way of getting such a 'private application' information to contact the developers of that application?
Either developers are intending for you to integrate with them, or they are not. If they are, they should be documenting how to do that (e.g., Intent formats to be used with startActivity() to trigger their code). If they do not document such integration points, you can certainly ask the developers to add some. However, randomly shooting Intents at them in hopes of getting a response, even if it temporarily works, is little better than script kiddie tactics -- those developers are not obligated to ensure you code works when they upgrade their app.
Is information about the data that the application operates with private, too?
I do not know what "information about the data that the application operates with" means. Data managed by an application is private by default. Again, application developers can offer integration points for data (e.g., content provider, remote service API) -- some do, some do not.
one of the things that grabbed me was the impression of immense interoperability
Android offers greater interoperability potential than some other mobile platforms. However, using that potential requires consent among the interoper-ees. You cannot unilaterally decide to hack into another app's database, or invoke private activities, just because you feel like it.
Should more Android developers offer more integration points? In the abstract, sure. However, bear in mind that this adds support costs (e.g., answering integration questions) and limits coding flexibility (e.g., need to maintain a stable API for those doing the integrating). Developers cannot be blamed if they do not wish to incur all that.

Categories

Resources