[SalesForce] Field Level Security using metadata api

I had created custom fields using metadata api,but field is not visible because of FieldLevelSecurity is false,i can make fieldLevelSecurity true using apex for System Admin.thanks in advance

MetadataService.AsyncResult[] asyncResults = service.create(new List<MetadataService.Metadata> {
                        customField
                        });

Like above I am inserting.
 

Best Answer

You can make the field level security by metadata API. When you create the field. Also send the field level permission in Admin Profile type metadata. A sample field permission looks like below.

<?xml version="1.0" encoding="UTF-8"?>
<Profile xmlns="http://soap.sforce.com/2006/04/metadata">
  <fieldPermissions>
        <editable>true</editable>
        <field>ObjectName__c.Field__c</field>
        <readable>true</readable>
    </fieldPermissions>
</Profile>