intent

Creator: coderz1093

Last updated:

Add to Cart

Description:

intent

intent #
A simple flutter plugin to deal with Android Intents - your one stop solution for Android Intents, written with ❤️.
Show some ❤️ by putting ⭐
intent tries to help you in launching another android activity using Android Intents. This Dart API replicates Android Intent API, so for detailed information on how to use it efficiently, when to send what kind of data, you may be interested in taking a look here, which explains things more elaborately.
intent is readily available for use.
what does it do ? #

intent is your one stop solution for handling different Android Intents from Flutter app.
It provides an easy to use Dart API, which can be used to launch different kind of Android Activities
You can view / create documents
Pick document(s) from Document Tree
Open default Assist Activity
Perform a Web Search
Request definition of a certain string to default Assist Activity
Open image for editing / viewing
Share text / multimedia to another activity
Send Email to specific user, while also setting CC & BCC
Share multiple documents at a time
Sync system content
Translate text
Set Wallpaper
Open any URL
Open Dialer for calling a specific number
Can pick a contact from your default phone activity
Can capture a photo using default Camera Activity

latest addition #
Newest Addition: You can pass extra data's type information, while invoking Intent.putExtra(String extra, dynamic data, {String type}) as optional named param type. You don't even need to hardcode type names as Strings, rather a class named TypedExtra has been given to developers, which has all currently supported type names as static variables. Consider using them. And last but not least, this is not a breaking change !!!
import 'package:intent/intent.dart' as android_intent;
import 'package:intent/extra.dart' as android_extra;
import 'package:intent/typedExtra.dart' as android_typedExtra;
import 'package:intent/action.dart' as android_action;

// more codes ...

android_intent.Intent()
..setAction(android_action.Action.ACTION_SHOW_APP_INFO)
..putExtra(android_extra.Extra.EXTRA_PACKAGE_NAME, "com.whatsapp", type: android_typedExtra.TypedExtra.stringExtra)
..startActivity().catchError((e) => print(e));
copied to clipboard
how to use it ? #
Well make sure, you include intent in your pubspec.yaml.
Define a Term : #
Intent()
..setAction(Action.ACTION_DEFINE)
..putExtra(Extra.EXTRA_TEXT, "json")
..startActivity().catchError((e) => print(e));
copied to clipboard
Show Desired Application Info : #
Make sure you address app using its unique package id.
Intent()
..setAction(Action.ACTION_SHOW_APP_INFO)
..putExtra(Extra.EXTRA_PACKAGE_NAME, "com.whatsapp")
..startActivity().catchError((e) => print(e));
copied to clipboard
Show Application Preference Activity : #
Intent()
..setAction(Action.ACTION_APPLICATION_PREFERENCES)
..startActivity().catchError((e) => print(e));
copied to clipboard
Launch Application Error Reporting Activity : #
Intent()
..setAction(Action.ACTION_APP_ERROR)
..startActivity().catchError((e) => print(e));
copied to clipboard
Launch Default Assist Activity : #
Intent()
..setAction(Action.ACTION_ASSIST)
..startActivity().catchError((e) => print(e));
copied to clipboard
Report Bug : #
Intent()
..setAction(Action.ACTION_BUG_REPORT)
..startActivity().catchError((e) => print(e));
copied to clipboard
View a URI : #
Which activity to be launched, depends upon type of URI passed.
In case of passing tel URI, opens dialer up.
Intent()
..setAction(Action.ACTION_VIEW)
..setData(Uri(scheme: "tel", path: "123"))
..startActivity().catchError((e) => print(e));
copied to clipboard
If you pass a mailto URI, it'll open email app.
Intent()
..setAction(Action.ACTION_VIEW)
..setData(Uri(scheme: "mailto", path: "someone@example.com"))
..startActivity().catchError((e) => print(e));
copied to clipboard
In case of http/ https URI, opens browser up.
Intent()
..setAction(Action.ACTION_VIEW)
..setData(Uri(scheme: "https", host:"google.com"))
..startActivity().catchError((e) => print(e));
copied to clipboard
Dial a Number using Default Dial Activity : #
Setting data using tel URI, will open dialer, number as input.
Intent()
..setAction(Action.ACTION_DIAL)
..setData(Uri(scheme: 'tel', path: '121'))
..startActivity().catchError((e) => print(e));
copied to clipboard
But if you're interested in opening dialer without any numbers dialer, make sure you don't set data field.
Intent()
..setAction(Action.ACTION_DIAL)
..startActivity().catchError((e) => print(e));
copied to clipboard
Calling a Number : #
You can simply call a number, but make sure you've necessary permissions to do so.
Intent()
..setAction(Action.ACTION_CALL)
..setData(Uri(scheme: 'tel', path: '121'))
..startActivity().catchError((e) => print(e));
copied to clipboard
It'll always be a wise decision to use ACTION_DIAL, because that won't require any kind of permissions.
Create Precomposed Email : #
Intent()
..setPackage("com.google.android.gm")
..setAction(Action.ACTION_SEND);
..setType("message/rfc822");
..putExtra(Extra.EXTRA_EMAIL, ["john.doe@exampleemail.com"]);
..putExtra(Extra.EXTRA_CC, ["jane.doe@exampleemail.com"]);
..putExtra(Extra.EXTRA_SUBJECT, "Foo bar");
..putExtra(Extra.EXTRA_TEXT, "Lorem ipsum");
..startActivity().catchError((e) => print(e));
copied to clipboard
Create a Document : #
Content type of document is set text/plain, category is CATEGORY_OPENABLE and file name is passed as an extra i.e. EXTRA_TITLE.
Intent()
..setAction(Action.ACTION_CREATE_DOCUMENT)
..setType("text/plain")
..addCategory(Category.CATEGORY_OPENABLE)
..putExtra(Extra.EXTRA_TITLE, "test.txt")
..startActivity().catchError((e) => print(e));
copied to clipboard
You can also set path of file using data field. But make sure data field is a valid path URI.
Edit Document : #
You can edit image/ text or any other kind of data using appropriate activity.
Intent()
..setAction(Action.ACTION_EDIT)
..setData(Uri(scheme: 'content',
path:
'path-to-image'))
..setType('image/*')
..startActivity().catchError((e) => print(e));
copied to clipboard
Add a Contact to your Contact Database : #
Intent()
..setAction('com.android.contacts.action.SHOW_OR_CREATE_CONTACT')
..setData(Uri(scheme: 'tel', path: '1234567890'))
..startActivity().catchError((e) => print(e));
copied to clipboard
Search for a Term : #
Opens up a list of eligible candidates, which can provides search activity.
Intent()
..setAction(Action.ACTION_SEARCH)
..putExtra(Extra.EXTRA_TEXT, 'json')
..startActivity().catchError((e) => print(e));
copied to clipboard
Share Text/ Media : #
Make sure you've set appropriate path URI for sharing documents/ media using EXTRA_STREAM and also set type properly.
Following one will share a plain text. For sharing html formatted text, set type to text/html.
Intent()
..setAction(Action.ACTION_SEND)
..setType('text/plain')
..putExtra(Extra.EXTRA_TEXT, 'json')
..startActivity().catchError((e) => print(e));
copied to clipboard
But if you're interested in creating a chooser i.e. all eligible candidates shown up system, which can handle this intent, make sure you set createChooser named parameter to true, which is by default false.
Send Email to certain ID while setting Content and CC/ BCC : #
Intent()
..setAction(Action.ACTION_SENDTO)
..setData(Uri(scheme: 'mailto', path: 'anjanroy@yandex.com'))
..putExtra(Extra.EXTRA_CC, ['someone@example.com'])
..putExtra(Extra.EXTRA_TEXT, 'Hello World')
..startActivity().catchError((e) => print(e));
copied to clipboard
Translate a Text using default Assist Activity : #
Intent()
..setAction(Action.ACTION_TRANSLATE)
..putExtra(Extra.EXTRA_TEXT, "I Love Computers")
..startActivity().catchError((e) => print(e));
copied to clipboard
Pick a Contact up from Phone : #

Opens default Phone Activity and let user pick a contact up, selected contact will be returned as Future<List<String>> from startActivityForResult().

Intent()
..setAction(Action.ACTION_PICK)
..setData(Uri.parse('content://contacts'))
..setType("vnd.android.cursor.dir/phone_v2")
..startActivityForResult().then((data) => print(data),
onError: (e) => print(e));
copied to clipboard
Capture Image using default Camera activity : #
Path to captured image can be grabbed from Intent().startActivityForResult().then(() { ... } ), which will be provided in form of List<String>, open file using that path, File(data[0]). Now you can work on that image file.
Intent()
..setAction(Action.ACTION_IMAGE_CAPTURE)
..startActivityForResult().then((data) => print(data[0]), // gets you path to image captured
onError: (e) => print(e));
copied to clipboard

If you're not interested in showing default activity launch animation, set following flag.
Intent()..addFlag(Flag.FLAG_ACTIVITY_NO_ANIMATION);
copied to clipboard
If you don't want this activity to be displayed in recents, set following flag.
Intent()..addFlag(Flag.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
copied to clipboard
If you request for certain Activity and no eligible candidate was found, you'll receive one error message, which you can listen for using Future.catchError((e) {},) method.
PlatformException(Error, android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SYSTEM_TUTORIAL }, null)
copied to clipboard
Currently a limited number of Actions are provided in Action class, but you can always use a string constant as an Action, which will help you in dealing with many more Activities.
Hoping this helps 😉

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.