Obsolete Pages{{Obsolete}}
The official documentation is at: http://docs.alfresco.com
AndroidCookbook
This page is the central page for examples for the Android SDK API. Feel free to add your examples to this.
Simple way to create an OnPremise Alfresco Session:
RepositorySession session = RepositorySession.connect('http://hostname:port/alfresco', 'username', 'password');
Create an OnPremise Alfresco Session + define the cache folder:
HashMap<String, Serializable> settings = new HashMap<String, Serializable>(1);
settings.put(AlfrescoSession.CACHE_FOLDER, 'Custom/Path/In/My/Device/' );
RepositorySession session = RepositorySession.connect('http://hostname:port/alfresco', 'username', 'password', settings);
Log Server information:
RepositoryInfo repositoryInformation = session.getRepositoryInfo();
Log.d('RepositoryInfo', repositoryInformation.getName());
Log.d('RepositoryInfo', repositoryInformation.getDescription());
Log.d('RepositoryInfo', repositoryInformation.getEdition());
Log.d('RepositoryInfo', repositoryInformation.getVersion());
Log.d('RepositoryInfo', repositoryInformation.getMajorVersion());
Log.d('RepositoryInfo', repositoryInformation.getMinorVersion());
Log.d('RepositoryInfo', repositoryInformation.getMaintenanceVersion());
Log.d('RepositoryInfo', repositoryInformation.getBuildNumber());
ServiceRegistry serviceRegistry= session.getServiceRegistry();
DocumentFolderService documentFolderService = serviceRegistry.getDocumentFolderService();
VersionService versionService= serviceRegistry.getVersionService();
SearchService searchService= serviceRegistry.getSearchService();
SiteService siteService= serviceRegistry.getSiteService();
ActivityStreamService activityStreamService = serviceRegistry.getActivityStreamService();
CommentService commentService = serviceRegistry.getCommentService();
PersonService personService = serviceRegistry.getPersonService();
TaggingService taggingService= serviceRegistry.getTaggingService();
RatingService ratingService= serviceRegistry.getRatingService();
WorkflowService workflowService= serviceRegistry.getWorkflowService();
Create an OnPremise Alfresco Session + define a custom ServiceRegistry :
HashMap<String, Serializable> settings = new HashMap<String, Serializable>(1);
settings.put(AlfrescoSession.ONPREMISE_SERVICES_CLASSNAME, 'custom.package.name.of.your.custom.service.registry.class.name' );
RepositorySession session = RepositorySession.connect('http://hostname:port/alfresco', 'username', 'password', settings);
//Create Folder
Folder folder = docfolderservice.createFolder(parentFolder, 'MyFolderName', null);
//Define properties
HashMap<String, Serializable> properties = new HashMap<String, Serializable>();
properties.put(ContentModel.PROP_TITLE, 'MyFolderTitle');
properties.put(ContentModel.PROP_DESCRIPTION, 'MyFolderDescription');
//Create Folder
Folder folder = docfolderservice.createFolder(parentFolder, 'MyFolderName', properties);
//Create Document
Document doc = docfolderservice.createDocument(folder, 'MyDocument.txt', null, null);
//Define properties
HashMap<String, Serializable> properties = new HashMap<String, Serializable>();
properties.put(ContentModel.PROP_TITLE, 'MyDocumentTitle');
properties.put(ContentModel.PROP_DESCRIPTION, 'MyDocumentDescription');
//Define content
File myDocumentFile = new File('path/inside/my/device/to/the/file');
ContentFile contentFile = new ContentFileImpl(myDocumentFile);
//Create Document
Document doc = docfolderservice.createDocument(folder, 'MyDocument.txt', properties, contentFile);
//Define properties
HashMap<String, Serializable> properties = new HashMap<String, Serializable>();
properties.put(ContentModel.PROP_TITLE, 'MyDocumentTitle');
properties.put(ContentModel.PROP_DESCRIPTION, 'MyDocumentDescription');
//Define aspects + properties associated to the aspect
List<String> aspects = new ArrayList<String>(1);
aspects.add('sc:productRelated');
properties.put('sc:product', 'My Product Name');
properties.put('sc:version', 'My Product Version');
//Define content
File myDocumentFile = new File('path/inside/my/device/to/the/file');
ContentFile contentFile = new ContentFileImpl(myDocumentFile);
//Create Document
Document doc = docfolderservice.createDocument(folder, 'MyDocument.txt', properties, contentFile, aspects);
//Create Document
Document doc = docfolderservice.createDocument(folder, 'MyDocument.txt', properties, null, null, 'sc:whitepaper');
//Create Document
Document customDoc = docfolderservice.getNodeByIdentifier('YourIdentifierHere');
Boolean hasAspect = customDoc.hasAspect('sc:productRelated');
String prop1 = customDoc.getProperty('sc:product').getValue();
String prop2 = customDoc.getProperty('sc:version').getValue();
WorkflowService workflowService = alfsession.getServiceRegistry().getWorkflowService();
// Process Definition
ProcessDefinition def = workflowService.getProcessDefinition(WorkflowModel.KEY_ADHOC_ACTIVITI);
// Assignee
Person user = alfsession.getServiceRegistry().getPersonService().getPerson(alfsession.getPersonIdentifier());
List<Person> users = new ArrayList<Person>();
users.add(user);
// Start Process : Prepare Variables
Map<String, Serializable> variables = new HashMap<String, Serializable>();
variables.put(WorkflowModel.PROP_WORKFLOW_DESCRIPTION, DESCRIPTION);
// START THE PROCESS
Process adhocProcess = workflowService.startProcess(def, users, variables, null);
WorkflowService workflowService = alfsession.getServiceRegistry().getWorkflowService();
// Start Process : Prepare Variables
Map<String, Serializable> variables = new HashMap<String, Serializable>();
// Process Definition
ProcessDefinition def = workflowService.getProcessDefinition(WorkflowModel.KEY_ADHOC_ACTIVITI);
// Assignee
Person user = alfsession.getServiceRegistry().getPersonService().getPerson(alfsession.getPersonIdentifier());
List<Person> users = new ArrayList<Person>();
users.add(user);
// Items - Attachments
Document doc = (Document) alfsession.getServiceRegistry().getDocumentFolderService().getChildByPath('My/Custom/Path/To/MyDoc.txt');
List<Document> docs = new ArrayList<Document>();
docs.add(doc);
// Due date
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(Calendar.YEAR, 2000);
variables.put(WorkflowModel.PROP_WORKFLOW_DUE_DATE, DateUtils.format(calendar));
// Priority
variables.put(WorkflowModel.PROP_WORKFLOW_PRIORITY, WorkflowModel.PRIORITY_HIGH);
// Description
variables.put(WorkflowModel.PROP_WORKFLOW_DESCRIPTION, 'Please Review !');
// Notification
variables.put(WorkflowModel.PROP_SEND_EMAIL_NOTIFICATIONS, 'true');
// START THE PROCESS
Process adhocProcess = workflowService.startProcess(def, users, variables, docs);
WorkflowService workflowService = alfsession.getServiceRegistry().getWorkflowService();
// Start Process : Prepare Variables
Map<String, Serializable> variables = new HashMap<String, Serializable>();
// Process Definition
ProcessDefinition def = workflowService.getProcessDefinition(WorkflowModel.KEY_POOLED_REVIEW_ACTIVITI);
// Assignees
variables.put(WorkflowModel.ASSOC_GROUP_ASSIGNEE, 'GROUP_workflow');
variables.put(WorkflowModel.PROP_REQUIRED_APPROVE_PERCENT, 50);
// Items - Attachments
Document doc = (Document) alfsession.getServiceRegistry().getDocumentFolderService().getChildByPath('My/Custom/Path/To/MyDoc.txt');
List<Document> docs = new ArrayList<Document>();
docs.add(doc);
// Description
variables.put(WorkflowModel.PROP_WORKFLOW_DESCRIPTION, 'Please Review !');
// START THE PROCESS
Process adhocProcess = workflowService.startProcess(def, null, variables, docs);
WorkflowService workflowService = alfsession.getServiceRegistry().getWorkflowService();
// Search unassigned task
ListingContext lc = new ListingContext();
ListingFilter lf = new ListingFilter();
lf.addFilter(WorkflowService.FILTER_KEY_STATUS, WorkflowService.FILTER_STATUS_ACTIVE);
lf.addFilter(WorkflowService.FILTER_KEY_ASSIGNEE, WorkflowService.FILTER_ASSIGNEE_UNASSIGNED);
lc.setFilter(lf);
PagingResult<Task> pagingTasks = workflowService.getTasks(lc);
//Retrieve a task
List<Task> tasks = workflowService.getTasks();
Task taskInProgress = tasks.get(0);
// Prepare Variable to complete task
Map<String, Serializable> variables = new HashMap<String, Serializable>();
variables.put(WorkflowModel.PROP_COMMENT, This is a comment');
variables.put(WorkflowModel.PROP_REVIEW_OUTCOME, WorkflowModel.TRANSITION_APPROVE);
// Close Active Task
Task taskCompleted = workflowService.completeTask(taskInProgress, variables);
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.