is it absolutely possible to have application using Zebra's Android EMDK that can run on other Android devices.
You can follow this guide to see how:
the basic idea is to modify the AndroidManifest, so that the EMDK library is not required:
<uses-library android:name="com.symbol.emdk" android:required="false" />
and don't use any EMDK functionality in the app entry point: if you're implementing the EMDK listener in the main Activity, running that code on a Samsung device will crash the app.
Take a look at this sample app that check EMDK version before enabling it: