﻿<?xml version="1.0" encoding="UTF-8"?>
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
# http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
-->
<cordova>

  <plugins>
    <plugin name="Device"/>
    <plugin name="Logger"/>
    <plugin name="Compass"/>
    <plugin name="Accelerometer"/>
    <plugin name="Camera"/>
    <plugin name="NetworkStatus"/>
    <plugin name="Contacts"/>
    <plugin name="DebugConsole" />
    <plugin name="Echo"/>
    <plugin name="File"/>
    <plugin name="FileTransfer"/>
    <plugin name="Geolocation"/>
    <plugin name="Notification"/>
    <plugin name="Media"/>
    <plugin name="Capture"/>
    <plugin name="SplashScreen"/>
    <plugin name="Battery"/>
    <plugin name="Globalization"/>
    <plugin name="InAppBrowser"/>
  </plugins>


  <access origin="*"/>

</cordova>
