Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
kamera [2013/04/14 22:51] admin angelegt |
— (aktuell) | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ==== Zugriff auf die Kamera ==== | ||
- | kamera/AndroidManifest.xml | ||
- | |||
- | <uses-sdk | ||
- | android:minSdkVersion="8" | ||
- | android:targetSdkVersion="16" /> | ||
- | |||
- | <code xml AndroidManifest.xml> | ||
- | <?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> | ||
- | </code> | ||
- | |||
- | kamera/src/com/exampe/kamera/MainActivity.java | ||
- | |||
- | <code java 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; | ||
- | } | ||
- | | ||
- | } | ||
- | </code> | ||
- | |||
- | kamera/assets/www/lib/css/meinecss.css | ||
- | |||
- | <code 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; | ||
- | } | ||
- | </code> | ||
- | |||
- | kamera/assets/www/index.html | ||
- | |||
- | <code html 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> | ||
- | </code> | ||
- | |||
- | kamera/assets/www/lib/js/meineskripte.js | ||
- | |||
- | <code javascript 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"; | ||
- | } | ||
- | </code> | ||
- | |||
- | In kamera/res/xml/config.xml die Berechtigungen prüfen | ||
- | |||
- | In kamera/assets/www/index.html die Cordova-Version prüfen |