Windows Phone 8 - Simulate touchscreen events - windows-phone-8

What would be the best approach to simulate a user tapping on a touchscreen of a Windows Phone 8 device?
One approach I could imagine is to use native code to call the Win32 API functions which control the mouse events. This would assume that touchscreen events are more or less the same as mouse events, and that these API functions are accessible. Does anyone know if this is the case on WP8?
Another approach would be to have something like the Android ADB for the Windows Phone. On Android, one can use ADB to control the device from the PC and also simulate touch screen events (e.g. via Monkeyrunner). I haven't found any information if there is a tool like ADB for Windows Phone 8.
The purpose of finding a solution for this is the integration of Windows Phone 8 devices in an automated testing process.

I found out that there is a DLL file named InputInjection.dll in the System32 folder of the Windows Phone 8 (at least in the simulator image I mounted).
This library contains the following functions:
ApiInjectInitialize
ApiInjectTouchEvent
ApiInjectButtonEvent
ApiInjectEnableExclusive
ApiInjectUninitialize
Doing some research, I found out that there are official ways to simulate touch input for Windows 8 development:
http://social.technet.microsoft.com/wiki/contents/articles/6460.simulating-touch-input-in-windows-8-preview-versions-using-touch-injection-api-en-us.aspx
http://msdn.microsoft.com/library/windows/desktop/hh802896(v=vs.85).aspx
However, the functions used for Windows 8 development are not available on Windows Phone 8. But the functions are named similarly to the ones I found in InputInjection.dll:
InitializeTouchInjection similar to ApiInjectInitialize
InjectTouchInput similar to ApiInjectTouchEvent
(...)
I wasn't able to find any documentation on InputInjection.dll and its functions. These functions also don't appear in the header files of the SDK. Maybe Microsoft uses these functions internally for their own tests during Windows Phone development.
The question is: Is it possible to access this library and call these functions somehow? This would be similar to using "Private APIs" on iOS, I guess. I tried several ways to achieve this with a Windows Phone 8 app using native C++ code, but I had no luck so far (the basic reason is that the apps run sandboxed on Windows Phone). Is there any way to get a binary running on Windows Phone (maybe via a debug bridge or something)?

You can access all those API's From Win32 Service/ Kernel Driver. Include the header file to your source code and Library of injection method it will work

Related

How to turn on /off the capabilities through a Windows 8.1 RT app

I am trying to develop an application which will deal with the following hardware and perform the stuff mentioned. I want to know that would it be feasible .
1)
Wi-FI
Scan for wi-fi , provide option to turn it off and on or reboot it .
2)
Bluetooth
Turn it off /on , make it discoverable if its not discoverable.
Apps
Get list of all apps that are installed and provide an option to kill them if they are running or uninstall them. The provision should also list the user the apps which he has sideloaded(need to know which all are the sideloaded apps).
Internet Connectivity
If internet is connected , check whether data is flowing or not.
Battery Status
Find all those apps which are consuming too much battery.Provide the option to uninstall them and lower the screen brightness and decrease the screen lock time
All these have to be implemented in an application that I want to develop.
I would be needing links for answers so that I can provide it in my feasibility report.
thanks
You will need to write a desktop app for this. Most of what you're looking for is completely out for a Windows 8.1 Runtime app. Windows 10 adds functionality for several of the bullet points, but in both versions you'll need a desktop app to manipulate other applications.
Universal Windows apps (aka Windows Runtime apps) run isolated and cannot generally affect the system or other apps. They can make changes only within their own context.
1 and 2: Windows 10 adds the Windows.Devices.Radios.Radio class to address your radio bullets, but this functionality is not available in Windows 8.1 Runtime apps.
3: This cannot be done from a runtime app. A desktop app can enumerate a user's apps with the Windows.Management.Deployment.PackageManager class.
4: You can query connectivity with Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile
5: This is not available in a Windows 8.1 Runtime app. In Windows 10 see Windows.Devices.Power.Battery

Finishing a Windows Phone 8 app - is it different to WP7?

This may seem an odd question , but I'm just wondering if the process of finalising a WP8 app is different to a WP7 app.
In WP7 when I am ready to publish an app I just go into the Debug/Bin folder upload the XAP top Dev Center. However, when I do this with WP8 apps they never serve ads. Also the XAP is always called something like AppName_AnyCPU_Debug.xap compared to just AppName.xap in WP7 apps (using VS2010).
I know with Windows 8 you do something different, but is it the same in WP8?
Help is appreciated.
Yes, its same in Windows phone 8.
But dont forget to check the project for store requirements.
Here is the link for more info on Store test kit
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394032%28v=vs.105%29.aspx
I am not sure about windows phone 7 but in windows phone 8 *_AnyCPU_Debug.xap means that xap is targeted for any CPU architecture(x86 or ARM) currently all windows phone CPU are ARM based. and secondly _Debug means that the xap is build as debug and that is not a good idea to publish the as the xap will contain unnecessary debug symbols and effect app performance. alwasy use build mode release when every you are publishing your app.

How to use GestureRecognizer on Windows Phone 8.1 Silverlight?

The problem is, that in order to generate manipulations, GestureRecognizer requires to call its methods "ProcessXXX" (e.g. "ProcessDownEvent").
These methods require "PointerPoint" object.
On winrt I got this point directly from "PointerXXX" event args (e.g. "args.GetCurrentPoint"). However, I don't have this in Windows Phone.
So, my question is: how I can make GestureRecognizer to work on Windows Phone 8.1 Silverlight?
Thanks
Thanks to Rob Caplan from Microsoft, I have a solution.
CoreWindow is available for Windows Phone, and it has PointerXXX events, which can be used for GestureRecognizer.

Any code changes needed to get WP8 app to run on Surface Tablet?

So, our Windows Phone developer left recently, and I primarily do Android development.
We had a question from a client about the possibility of installing our Windows Phone 8 app on a Surface Tablet. Namely, is it possible to do? As it stands, our WP8 app was not written with tablets in mind, so my question is:
Is there anything I need to do to the WP8 app to get it to install on a tablet, (should it work as-is (like Android apps do), is there some sort of flag I have to enable and then rebuild, etc.?)
As #AMR mentions, the biggest challenge will be the UI; however, depending on the device functionality being used, the "backend" may or may not be a challenge as well.
There is great guidance on the Windows Phone Dev Center about practices and techniques for building for both platforms, so depending on when the phone app was built and your former developer's awareness of the overlapping platforms, you could be in great shape or just so-so shape.
Additionally, the following resources may be of help in mapping from what you have already coded in Windows Phone 8 to what you'd do in Windows 8:
XAML controls comparison between Windows Phone 8 and Windows 8
(much will be relevant to Windows Phone 7 too)
Windows Phone 8 and Windows 8 platform comparison (shows common
APIs, storage, networking, etc.)
Lastly, the Windows Phone Runtime API documentation gives a listing
of APIs only on Phone 8 vs. APIs adopted from Windows 8.
Okay well first off yes, there will be a few things that change but nothing to serious.
HOPFULLY you have a good MVVM model. If this is the case then you should be able to just copy and paste 99.999% of your backend code right into your tablet app. There are a few things that are different but its just namespace stuff. Nothing too serious.
The Major change is going to be your UI layout and UI controls. Depending on what libs you are using you will probably have a lot of conflicts.
Your best bet is to just copy and paste your backend code in and then creating a new UI. I have tried to merge phone UIs in the paste into the tablet and its rediculous at times. I found it takes less time to just recreate it.
If you need any help you can hit me up at www.AnthonyRussell.info Maybe I can help with your transfer. Just make sure to leave your contact info.

Starting with audio in Windows Phone 8

I recently started doing some development in the Windows Phone 8 OS I'm pretty new on this. I was doing some searching about the fact to create an app who play any audio for some specific events/actions.
I was reading the Windows Phone API reference from Windows Phone Dev Center http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff626516%28v=vs.105%29.aspx#BKMK_Win32andCOMAPIforWindowsPhone
But it seems a little confusing to me at first glance and I have the doubt of which one of the following should I use to accomplish my task.
The .Net API for Windows Phone
Win 32 and COM API
... or the Windows Phone Runtime API
Any help would be very appreciate
It really depends what you're trying to do. If you're writing a native application or are interested in cross-compatability with Windows 8 then XAudio2 or the WinRT APIs are definitely the way to go. If you just want to play some infrequent sounds (say, when you pop up a warning dialog) from within a XAML app then I have seen a number of approaches, teh easiest of which is probably just having a MediaElement in your XAML that you use to play the audio.