Print raw data in UWP - printing

I'm developing an app in UWP. I need to send to my printer a RAW string (or file) and get that printed. I succed in using the old RawPrinterHelper from here.
I have some problems verifiyng the app using the Windows App Certification Kit.
I get errors like this one :
API ClosePrinter in winspool.drv is not supported for this application type. MyApp.dll calls this API.
I think that DllImport() in RawPrinterHelper is wrong.
Is there a way to use a diffent RawPrinterHelper or bypass the Windows App Certification Kit in some way?
P.S. I need to publish the app on the Microsoft Store.

If you have already run the WACK test with the release build, then as the error described there are APIs not supported for the windows store app. More details please reference Supported API test.
Is there a way to use a diffent RawPrinterHelper or bypass the Windows App Certification Kit in some way
For print relative features in windows store app, please follow this tutorial and the official sample. This provide alternatives to the windows print relative APIs. Details please reference Printing and documents section of Alternatives to Windows APIs in Universal Windows Platform (UWP) apps.
If you want the print feature with no print dialog you may reference this thread.

Related

Toast Notifications do not work when application packaged into Appx package

I have developed a Microsoft Store app and I want to add Toast notifications.
The application is developed using Delphi 10.2.3 and I am using "Desktop Bridge" technology to convert it into an Appx package for the Microsoft Store. Toast Notifications works fine until I package the application into an Appx package (for the Store or Sideloading).
When running from appx and SideLoading, Toast notifications do not work and my app is not listed in the Windows Settings as a notification sender. I figured there must be some manifest extension I need to define. There was a (now deprecated) appxmanifest setting ToastCapable="true", but I am reading that is no longer used nor required for Windows 10.
I have Toast Notification working just fine when I run the application executable, but not when I install it from an Appx package. How do I get Windows 10 to understand my application is a Notification Sender?
Unfortunately it will not work using the provided TNotificationCenter component (I tested in many versions including 10.2.3).
The reason is described in this link: https://blogs.msdn.microsoft.com/universal-windows-app-model/2017/01/31/how-to-ensure-your-toast-notifications-continue-to-work-when-converting-your-win32-app-into-a-windows-store-app-using-project-centennial/
There is a simple fix but you need to modify the component source code. When publishing to the Windows Store, TNotificationCenter should not create a shortcut for your app and should not provide an application ID when creating the IToastNotifier instance. This will be done automatically for you.
I ended up writing my own library to manage Windows 10 notifications because I wanted more elaborate scenarios and custom XML payloads then what is offered but I can confirm that it works when done as per Microsoft instructions.
I compared my classes with System.Win.Notification (found in source\\rtl\common) and here are some tips that you could try to make it work (untested):
#1 - constructor for TNotificationCenterWinRT
FToastNotifier := TToastNotificationManager.Statics.CreateToastNotifier(LWSAppID);
should be ...
FToastNotifier := TToastNotificationManager.Statics.CreateToastNotifier();
#2 - TNotificationCenterWinRT.DoPresentNotification
if CreateShortcut then
should be ...
if True then
Note: if you decided to modify the source file, it is recommended to first make a copy of the file in your project folder and modify that instead.

Acessing system information from frameworks in iOS Developer Library

As the title says, I am trying to create an app(personal development) and try to see what kind of system information or user data can be retrieved from phone. For now I am using the stimulator provided. So far what I am able to do is to retrieve information using the Address Book and UIKit Framework such as contact details and System Name/Version etc.
Is there any system information/user data that I missed out because I have yet to know of any more frameworks that allows retrieving of any information from the phone/Stimulator. I am not able to test EventKit Framework(the only other framework that I know) due to the fact that I am deploying the app in the stimulator which does not have the required apps. (Will be trying on jailbroken iphone in the later stages).
Also, I have yet to find any information of accessing the .sqlitedb /.db/.plist files programmatically instead of using any software tools as I would like to access the files such as messages, phone history through my app that I created. If this is possible, I would also like to know if accessing these .sqlitedb /.db files/.plist is only applicable if I deploy my app in the jailbroken phone /Applications folder which does not have sandbox or is it also applicable in the stimulator itself?
This will be definitely helpful to you to get access the call/sms/email details by reading the .sqlite database. Here is a tutorial.
i know providing links are discouraged here however these apple and wiki
links will be helpful to you.
thanks

Does BlackBerry support demo/beta releases for its app developers?

I am interested in developing an app for BlackBerry devices, and was wondering if they support the concept of demo or beta releases for their app developers? By this, I mean the ability to deploy a beta or demo version of my app to a limited/restricted audience, such as business partners, customers, external beta testers, etc. Nothing in their Testing and Deployment documentation indicates either way. Thanks in advance!
There isn't a built in beta process in App World for BlackBerry 10, but you can share the debug version of your app with your beta participants. When you create a debug token, you specify which PINs you want it to be valid for. The debug token will only install on a device with one of those PINs, and your app will only install on a device with your debug token on it. The token will only be valid for 30 days. You would have to deploy it with the command line tools and not App World.
This link on the BlackBerry Developer blog explains how to do it: http://devblog.blackberry.com/2012/04/debug-token/
It's for PlayBook, but the same process applies for BlackBerry 10 as well.
I actually don't know if RIM themselves have anything formal, but since I've always released BlackBerry apps on more than just the official App World store, I've used a beta testing system that is independent of RIM. Luckily, the legacy BlackBerry Java platform gives you the freedom to do this, free of charge. (Note that this answer is not about the upcoming BB10 platform!)
Over-the-Air (OTA) Installation
You can have your beta testers install your beta versions, Over-The-Air (OTA). Unlike iOS, for example, you aren't limited to a certain number of test devices, and you don't have to tell RIM what the unique identifiers of all the test devices are.
So, what I do is just put beta versions of my apps on a webserver, and send links to beta testers that allows them to download them. So, you are in control of who gets access. If you need security to limit the beta version to nobody except the official beta testers, then you are certainly free to add password protected logins to your webserver. That works the same way it would for any other secure web content.
If you do this (OTA), here are a few references:
http://www.blackberryinsight.com/2008/07/08/howto-setup-an-apache-webserver-to-deliver-blackberry-ota-applications/
Blackberry over the air installation
https://stackoverflow.com/a/10307074/119114
There are a couple steps to be aware of:
You normally just upload a .cod file to BlackBerry App World. If you want to deploy an app to your own webserver, you also need the .jad file. A JAD file is basically just a descriptor of the app, that can redirect a BlackBerry browser to the .cod file for installation. Your build process is already probably generating the .jad file for you, in the same output directory where it generates your .cod files.
You may need to configure your webserver to properly setup MIME types for files with a .jad extension. If you use Apache, then this is what you would put in your httpd.conf file:
AddType text/vnd.sun.j2me.app-descriptor jad
you may also need to add a MIME type definition for the .cod type, too
AddType application/vnd.rim.cod .cod
If you don't have access to the web server's httpd.conf file, but can place the JAD and COD in your own user directory, then you can configure the MIME types in a local .htaccess file.
Depending on your web server configuration, there may be a couple more steps necessary. Check the OTA links I provided above.
Desktop Installation
Another option is to simply email your beta versions to beta testers, and have them install on their devices using BlackBerry Desktop Software. I don't do this, but it is another way to accomplish the same thing. For this, you use the .cod file, and also the .alx file, which is also generated by the normal BlackBerry build process.
Note that some of the project properties that get put into the .alx or .jad files are things that you don't need to worry about if you only deploy the .cod file directly to BlackBerry App World. If you use one of the options (ALX for Desktop installation, or JAD for OTA), then I would recommend opening up the .alx or .jad file and just inspecting the values for correctness. They're normal text files, and most of the values should be self-explanatory. I believe all settings can be configured from inside your IDE. If you use the BlackBerry Eclipse plugin, right click on your project, select Properties and look around there.
Here are the official RIM docs on all your installation options
its not possible. When you publish your app in app world, it will be available to all users. So you cant set any special conditions like- available only to some people. Else make it in un published mode. Then only users with sandbox id can access your app.
Check the below link for BB 10 Cascades beta 3 release(Preferrable way of development in BB 10)
https://developer.blackberry.com/cascades/
For BB 10,they are plenty of ways for developing the applications ,check the below link
https://developer.blackberry.com/platforms/

Where to get BlackBerry CSK File for PhoneGap?

I want to use PhoneGap to sign my BlackBerry App. When I go to add the key files it asks for a CSK file.
I went to https://www.blackberry.com/SignedKeys/ and requested keys.
However the files sent to me were 3 different CSI files(RBB, RCR, RRT).
How and where can I get the CSK and DB file needed to sign apps on PhoneGap?
First you need to install the blackberry SDK (as part of Eclipse if you're using this IDE, otherwise get the standalone java one).
Then follow these steps.
Basically this will store your key locally, then you create a backup of it in the form of a .csk+.db files.
Adobe® PhoneGap™ Build currently provides a default BlackBerry development version for all users, which provides an Over-The-Air install for your PhoneGap applications. However, to distribute your own BlackBerry applications, you will need to register with RIM for your own keys, and then import those keys into PhoneGap Build.
To register, fill out the form on RIM's site , and, once you receive your keys, follow the installation process locally.. using the steps mentioned here

how to debug java app in blackberry

I am developing a bluetooth application for blackberry. I am getting some BluetoothStateException's whil running the app on the phone. I am wondering if there is any way to debug th application on the phone?
Thanks.
UDPATE: There is an option in JDE I found to debug on device, but it keeps asking me to install signing keys.But I have not used any BB API's AFAIK
You cant install a BB app on handset without signing it. Get a developer account on BlackBerry developer website, and you should be able to set up signing, it is almost trivial to do so.
You shouldn't have to sign if you haven't used the BlackBerry APIs that require signing keys. In particular, the basic UiApplication class and the BluetoothStateException don't require the keys.
Having said that, it sounds like you used a protected API in there somewhere (they're really all over the place, the PersistentStore for example, or the Display class in the system package). You can enable warnings within Eclipse for when you use protected APIs. Under Window->Preferences->BlackBerry Java Plug-In, check the Warnings sub-item and make sure all 3 checkboxes are unchecked. Then look at your Eclipse warnings/error view.
Also, I agree with #omermuhammed, it's really easy to get signing keys.

Resources