card.io-Android-SDK alternatives and similar packages
Based on the "SDK" category.
Alternatively, view card.io-Android-SDK alternatives based on common mentions on social networks and blogs.
-
Android-ReactiveLocation
Small library that wraps Google Play Service API in brilliant RxJava Observables reducing boilerplate to minimum. -
LandscapeVideoCamera
Powerful custom Android Camera with granular control over the video quality and filesize, restricting recordings to landscape only. -
Applozic-Android-Chat-Messaging-SDK
DISCONTINUED. Official Android SDK for Applozic Real-time Chat & Messaging. Powerful client, offline support, and UI component libraries for awesome in-app chat features. -
WeatherLib
Android Weather Library: android weather lib to develop weather based app fast and easily -
android-donations-lib
Donations library for Android. Supports Google Play Store, Flattr, PayPal, and Bitcoin -
Office-365-SDK-for-Android
DISCONTINUED. Microsoft Services SDKs for Android produced by MS Open Tech. -
LinkedIn-SDK-Android
A lightweight android library to implement Login with LinkedIn in your Android app.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of card.io-Android-SDK or a related project?
README
card.io SDK for Android
card.io provides fast, easy credit card scanning in mobile apps.
Stay up to date
Please be sure to keep your app up to date with the latest version of the SDK. All releases follow semantic versioning.
The latest version is available via mavenCentral()
. Just add the following dependency:
compile 'io.card:android-sdk:5.5.1'
You can receive updates about new versions via a few different channels:
- Follow @cardio (also great to send us feedback)
- Subscribe to our card-io-sdk-announce list.
- "Watch" this GitHub repository
Also be sure to check and post to the Stack Overflow card.io tag.
Integration instructions
The information in this guide is enough to get started. For additional details, see our javadoc.
(Note: in the past, developers needed to sign up at the card.io site and obtain an app token
. This is no longer required.)
Requirements for card scanning
- Rear-facing camera.
- Android SDK version 16 (Android 4.1) or later.
- armeabi-v7a, arm64-v8, x86, or x86_64 processor.
A manual entry fallback mode is provided for devices that do not meet these requirements.
Setup
Add the dependency in your build.gradle
:
compile 'io.card:android-sdk:5.5.0'
Sample code (See the SampleApp for an example)
First, we'll assume that you're going to launch the scanner from a button,
and that you've set the button's onClick
handler in the layout XML via android:onClick="onScanPress"
.
Then, add the method as:
public void onScanPress(View v) {
Intent scanIntent = new Intent(this, CardIOActivity.class);
// customize these values to suit your needs.
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, true); // default: false
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, false); // default: false
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, false); // default: false
// MY_SCAN_REQUEST_CODE is arbitrary and is only used within this activity.
startActivityForResult(scanIntent, MY_SCAN_REQUEST_CODE);
}
Next, we'll override onActivityResult()
to get the scan result.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MY_SCAN_REQUEST_CODE) {
String resultDisplayStr;
if (data != null && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {
CreditCard scanResult = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);
// Never log a raw card number. Avoid displaying it, but if necessary use getFormattedCardNumber()
resultDisplayStr = "Card Number: " + scanResult.getRedactedCardNumber() + "\n";
// Do something with the raw number, e.g.:
// myService.setCardNumber( scanResult.cardNumber );
if (scanResult.isExpiryValid()) {
resultDisplayStr += "Expiration Date: " + scanResult.expiryMonth + "/" + scanResult.expiryYear + "\n";
}
if (scanResult.cvv != null) {
// Never log or display a CVV
resultDisplayStr += "CVV has " + scanResult.cvv.length() + " digits.\n";
}
if (scanResult.postalCode != null) {
resultDisplayStr += "Postal Code: " + scanResult.postalCode + "\n";
}
}
else {
resultDisplayStr = "Scan was canceled.";
}
// do something with resultDisplayStr, maybe display it in a textView
// resultTextView.setText(resultDisplayStr);
}
// else handle other activity results
}
Hints & Tips
- Javadocs are provided in this repo for a complete reference.
- Note: the correct proguard file is automatically imported into your gradle project from the
aar
package. Anyone not using gradle will need to extract the proguard file and add it to their proguard config. - card.io errors and warnings will be logged to the "card.io" tag.
- If upgrading the card.io SDK, first remove all card.io libraries so that you don't accidentally ship obsolete or unnecessary libraries. The bundled libraries may change.
- Processing images can be memory intensive.
- Memory Analysis for Android Applications provides some useful information about how to track and reduce your app's memory useage.
- card.io recommends the use of SSL pinning when transmitting sensitive information to protect against man-in-the-middle attacks.
Contributing
Please read our [contributing guidelines](CONTRIBUTING.md) prior to submitting a Pull Request.
License
Please refer to this repo's [license file](LICENSE).
*Note that all licence references and agreements mentioned in the card.io-Android-SDK README section above
are relevant to that project's source code only.