Querying CRM Metadata for Mobile Enabled

You can of course open up each entity and check the Is Enabled for Mobile checkbox on the entity defintion. But that could take a while. So here's a simple Metadata query that will return you a nice list.

       CrmConnection c = new CrmConnection("CRM");
        var service = new OrganizationService(c);

        MetadataFilterExpression entityFilter = 
           new MetadataFilterExpression(LogicalOperator.And);

        MetadataConditionExpression isVisibileInMobileTrue = 
            new MetadataConditionExpression("IsVisibleInMobileClient",
                MetadataConditionOperator.Equals, true);

        entityFilter.Conditions.Add(isVisibileInMobileTrue);

        EntityQueryExpression query = new EntityQueryExpression()
        {
            Criteria = entityFilter             
        };

        RetrieveMetadataChangesRequest retrieveMetadataChangesRequest = 
           new RetrieveMetadataChangesRequest()
        {
            Query = query              
        };

        var results = service.Execute(retrieveMetadataChangesRequest)
               as RetrieveMetadataChangesResponse;
               
        foreach (var entity in results.EntityMetadata)
        {
            Console.WriteLine("Entity {0}:{1}", 
            entity.SchemaName,                                    
            entity.DisplayName.UserLocalizedLabel.Label);
        }

For those of you that don't want to write code and are intersted - here is the list of what is enabled right now with the beta of CRM 2015 Spring Update

Entity Account:Account
Entity ActivityPointer:Activity
Entity Team:Team
Entity Connection:Connection
Entity ActivityMimeAttachment:Attachment
Entity Product:Product
Entity Email:Email
Entity Entitlement:Entitlement
Entity Incident:Case
Entity SystemUser:User
Entity Task:Task
Entity OpportunityProduct:Opportunity Product
Entity Opportunity:Opportunity
Entity WebResource:Web Resource
Entity Contact:Contact
Entity Queue:Queue
Entity Lead:Lead
Entity SLAKPIInstance:SLA KPI Instance
Entity Appointment:Appointment
Entity Annotation:Note
Entity QueueItem:Queue Item
Entity Competitor:Competitor
Entity SocialActivity:Social Activity
Entity KnowledgeBaseRecord:Knowledge Base Record
Entity SocialProfile:Social Profile
Entity PhoneCall:Phone Call