Dies ist eine alte Version des Dokuments!
kamera/AndroidManifest.xml
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.erstephonegapapp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.erstephonegapapp.MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
kamera/src/com/exampe/kamera/MainActivity.java
package com.example.erstephonegapapp; import android.os.Bundle; import android.view.Menu; import org.apache.cordova.*; public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
kamera/assets/www/lib/css/meinecss.css
#meldung{ display:block; background:blue; color:white; height:25px; font-size: 16px; padding:2px; margin:2px; text-align:center; } #bild{ // display:none; margin-left: auto; margin-right: auto; width:200px; } #btn{ text-align:center; margin-left: auto; margin-right: auto; margin-bottom:10px; } h4{ text-align:center; font-size:60px } button{ margin:5px; width: 200px; font-size:45px; }
kamera/assets/www/index.html
<!DOCTYPE HTML> <html> <head> <title>Cordova</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <link rel="stylesheet" href="lib/css/meinecss.css" type="text/css"/> <script type="text/javascript" charset="utf-8" src="lib/js/cordova-2.5.0.js"></script> <script type="text/javascript" charset="utf-8" src="lib/js/meineskripte.js"></script> </head> <body> <h4>Zugriff auf die Kamera</h4> <div id="btn"> <button id="aufnahme"> Foto aufnehmen </button> <br/> <button id="loeschen"> Foto löschen </button> <br/> <button id="speichern"> Foto speichern </button> </div> <div id="meldung"></div> <img id="bild" src="img/rjsfoto.gif" alt="Bild"></img> </body> </html>
kamera/assets/www/lib/js/meineskripte.js
var destinationType; window.onload = function() { document.getElementById("aufnahme").addEventListener('click',function() { navigator.camera.getPicture(onSuccess1, onFail, { quality : 50, destinationType : destinationType.DATA_URL }); }); document.getElementById("loeschen").addEventListener('click',function() { document.getElementById('bild').style.display = "none"; document.getElementById("meldung").innerHTML = 'Bildanzeige gelöscht'; }); document.getElementById("speichern").addEventListener('click',function() { navigator.camera.getPicture(onSuccess2, onFail, { quality : 50, destinationType : destinationType.FILE_URI, saveToPhotoAlbum : true, encodingType : navigator.camera.EncodingType.PNG }); }); document.addEventListener('deviceready', function() { destinationType = navigator.camera.DestinationType; }, false); }; function onSuccess1(imageData) { document.getElementById('bild').src = "data:image/jpeg;base64," + imageData; document.getElementById('bild').style.display = "block"; document.getElementById("meldung").innerHTML=('Aufnahme erfolgreich'); } function onSuccess2(imageData) { document.getElementById("meldung").innerHTML=('Aufnahme erfolgreich gespeichert'); } function onFail(message) { document.getElementById("meldung").innerHTML=('Fehler bei der Aufnahme: ' + message); document.getElementById('bild').style.display = "none"; }
In kamera/res/xml/config.xml die Berechtigungen prüfen
In kamera/assets/www/index.html die Cordova-Version prüfen