Hi,
sry für die späte Antwort Problem gelöst:
http://stackoverflow.com/quest…king-for-android-beam-nfc
Beiträge von freemoser
-
-
Guten Morgen
ich bin seid Stunden am Verzweifeln! Hoffe mir kann wer helfen.
Ich möchte gerne das meine App in der Lage ist Text zu beamen. Habe dafür ein kleines Testprojekt gemacht
und es hat alles wunderbar geklappt. Nun wo ich es in meiner "Richtigen" App einbauen möchte, gelingt es mir nicht.
Immer wenn ich beame, öffnet sich nur "Neuer Tag erfasst"application/eu.freemoser.mydebts2go. Ich vermute, dass es
am Intent-Filter liegen muss? Finde das Problem aber nicht und google, konnte mir auch nicht weiter helfen.Manifest:
Zitat
<activity
android:name="eu.freemoser.myDebts2go.Beam"
android:theme="@android:style/Theme.DeviceDefault.Wallpaper.NoTitleBar">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/eu.freemoser.myDebts2go" />
</intent-filter>
</activity>Beam Activity (Empfänger)
Zitat@Override
protected void onResume() {
super.onResume();
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
processIntent(getIntent());
}
}void processIntent(Intent intent) {
myDb = new DBAdapter(this);
myDb.open();
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
NfcAdapter.EXTRA_NDEF_MESSAGES);
// only one message sent during the beam
NdefMessage msg = (NdefMessage) rawMsgs[0];
// record 0 contains the MIME type, record 1 is the AAR, if present
String temp = new String(msg.getRecords()[0].getPayload());
String[] arrrayTemp = temp.split("//");
...
}Und hier "Sender"
Zitat
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
Time time = new Time();
time.setToNow();
String text = myBetrag + "//" + myTitle + "//" + myContactName + "//" + myStatus + "//" + myDebtDate + "//" + myCreateDate + "//" + myRemamberDate + "//" + myNote;
NdefMessage msg = new NdefMessage(
new NdefRecord[]{createMimeRecord(
"application/eu.freemoser.myDebts2go", text.getBytes())});
return msg;
}public NdefRecord createMimeRecord(String mimeType, byte[] payload) {
byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));
NdefRecord mimeRecord = new NdefRecord(
NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload);
return mimeRecord;
}Danke fürs durchlesen
-
Hi,
ich verwende dafür den Alarm Manager um dann ein Service zu starten:ZitatSimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yy", Locale.getDefault());
Calendar calendar = Calendar.getInstance();calendar.setTime(simpleDateFormat.parse(myRemamberDate));
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent();
// Du könntest den Intent noch z.b den BenarichtungsText hinzufügen
intent.setClass(this, NotificationService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);Dann im Service :
Zitat
@Override
public int onStartCommand(Intent intent, int flags, int startId) {NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this);
mBuilder.setSmallIcon(R.drawable.ic_launcher);
mBuilder.setContentTitle(title);
mBuilder.setContentText(msg);
mBuilder.setTicker(tricker);
mBuilder.setVibrate(new long[]{1000, 1000, 1000, 1000, 1000});
mBuilder.setLights(color, 3000, 3000);
mBuilder.setLargeIcon(largeIcon);
mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
mBuilder.setContentIntent(pendingIntent);NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, mBuilder.build());
} -
naja die vorlage ist etwas anderes da ist nur ein image view mit einem Bild von daher
-
danke^^ gute idee mit dem Hintergrund zum testen scheint nur leider so als wäre es gar nicht drauf
um ehrlich zu sein hab ich mich da einfach an die Vorlage gehalten und ich wüsste gar nicht wie ich das mit einer .xml Datei so umsetzten könnte?
-
sry eigentlich sind da Fotos von Personen, wollte jetzt nur keine Bilder von Leuten ins Netz stellen (Das zentrierte c auf grauen Hintergrund ist ein Bitmap)
Daher kommt das C mit grauen Hintergrund:
Hier noch mal eins mit meiner Katze als Hintergrund (und 2 mal ein Buchstabe):
http://www.directupload.net/file/d/3652/3cz9tfdg_png.htmZitat
private Bitmap getThumb(long id)
{Cursor cursor = myDb.getRowFromTableUser(id);
byte[] b = cursor.getBlob(DBAdapter.COL_PHOTO);if (b != null) {
return BitmapFactory.decodeByteArray(b, 0, b.length);
} else {
Bitmap bmp = Bitmap.createBitmap(150, 150, Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bmp);
Paint paint = new Paint();
String temp = cursor.getString(DBAdapter.COL_PERSON);
temp = temp.substring(0,1);
temp = temp.toUpperCase();
paint.setColor(Color.rgb(random.nextInt(128 ) , random.nextInt(128 ) , random.nextInt(128 ) ));
paint.setTextSize(24);
paint.setTypeface(typeface);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
canvas.drawRect(new Rect(0, 0, 150, 150), paint);
paint.setColor(Color.WHITE);
paint.setTextAlign(Paint.Align.CENTER);
canvas.drawText(temp, 75, 75, paint);
return bmp;
}
} -
danke erstmal für die schnelle antwort.
Stimmt das war auch falsch^^
hier ist der ist ist zustand: http://www.directupload.net/file/d/3652/gkpprsvc_png.htm <img src="http://www.directupload.net/file/d/3652/gkpprsvc_png.htm" alt="gkpprsvc_png.htm" title="gkpprsvc_png.htm" style="font-size: 0.8em;" />
-
Hallo zusammen,
ich versuche in einen GridView (um genau zu sein: DraggableGridView) Layouts zu generieren (Hab davor noch nie ein Layout über code erstellt) Basierend auf die Anzahl der Einträge in der Datenbank). Die App stützt auch nicht App, eigentlich macht sie auch fast alles was sie soll. Also das RelativeLayout hat die richtige Größe und auch der Hintergund stimmt.
Mein Layout soll so aufgebaut sein (xml Vorbild):
Zitat
<RelativeLayout
android:layout_width="150dp"
android:layout_height="150dp"
android:background="@drawable/ic_contact_picture_2"><LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"><TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/textView" /><TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/textView2" />
</LinearLayout>
</RelativeLayout>[Blockierte Grafik: http://s7.directupload.net/images/140613/temp/oxkjl9sl.png]
hier der code:
Zitat
for (int i = 0; i < names.length; i++) {RelativeLayout relativeLayout = new RelativeLayout(getActivity());
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 150);
relativeLayout.setLayoutParams(layoutParams);
relativeLayout.setBackground(new BitmapDrawable(getResources(), getThumb(cursor.getLong(0))));RelativeLayout.LayoutParams layoutParams2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);// ab hier geht es nicht mehr
LinearLayout linearLayout = new LinearLayout(getActivity());
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setGravity(Gravity.BOTTOM);TextView textView = new TextView(getActivity());
textView.setTextAppearance(getActivity(), android.R.style.TextAppearance_Small);
textView.setText("TEST");
textView.setTextSize(10);
linearLayout.addView(textView);TextView textView2 = new TextView(getActivity());
textView2.setTextAppearance(getActivity(), android.R.style.TextAppearance_Small);
textView2.setText("TEST2");
textView2.setTextSize(10);
linearLayout.addView(textView2);relativeLayout.addView(linearLayout, layoutParams2);
dgv.addView(relativeLayout);
cursor.moveToNext();
}Sieht wer den/die Fehler? Danke schon mal im voraus
-
danke für die schnelle Antwort ;D
ich möchte eigentlich das wenn man auf Fertig (button auf der Actionbar) drück von Fragmente A Name (String), Betrag (Float), Person (long), Adresse (String), Datum (date) und von Fragment B, Notiz (String) Foto (Bitmap) auf die Activity übertragen und dann in die Datenbankschreiben.
Also Quasi nach dem Schema:
Fragment A ---Daten----> Activity <---Daten--- Fragment B
Activity --Daten--> Datenbank
-
Guten Abend :),
ich hab ein Problem ich hab das Tutorial hier mir durchgelesen um eine FragmentActivity mit Tabs zu schreiben (ViewPager).
Klappt auch alles wunderbar nun möchte ich wenn man auf Fertig (Actionbar) drückt, gewisse werte zur FragmentActivity übergeben.dazu hab ich folgenes:
Zitat
@Override
public boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {
default:
return super.onOptionsItemSelected(item);
case 1:
this.finish();
return super.onOptionsItemSelected(item);case 2:
newErwFragment erwFragment = mAdapter.getItem(1);
newDebtGrundFragment debtGrundFragment = mAdapter.getItem(0);return true;
}}
da ist auch schon das Problem:ZitatIncompatible types.
Required:
eu.freemoser.debts2go.newDebtGrundFragment
Found:
android.support.v4.app.Fragmentnach ein wenig googeln denk ich, auch schon zu wissen was das Problem ist. Liegt igwie daran das es zwei arten von Fragmenten gibt? Allerdings importiere ich doch nur aus android.support.v4.app.* ?
hier die Importe aus der Fragment Activity:
Zitat
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;aus Fragment A
Zitat
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;Hier aus Fragment B
Zitat
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.*;
import android.net.Uri;
import android.preference.PreferenceManager;
import android.provider.ContactsContract;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;und Hier der FragmentPagerAdapter
Zitat
public class TabsPagerAdapter extends FragmentPagerAdapter {public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {switch (position) {
case 0:
return new newDebtGrundFragment();
case 1:
return new newErwFragment();
case 2:}
return null;
}@Override
public int getCount() {
return 2;
}}
danke schonmal fürs druchlesen
-
Hallo,
Ich versuch meine App in das DashClock Widget (war in letzter zeit überall zu lesen ) zu Integrieren.
Ich habe mit dazu auf die API Docs durchgelesen.
Leider weiß ich jetzt nicht weiter wie ich eine Activity von mir beim Anklicken starten kann.ich habs jetzt mal wie im Beispiel Gmail versucht:
Zitat
publishUpdate( data.visible( true ).icon( R.drawable.ic_launcher ).status( getString(
R.string.statusDashClock ) ).expandedTitle( getString( R.string.statusDashClockLong )
+ "!" ).expandedBody( getString( R.string.expandedBody ) ).clickIntent( new Intent(
Intent.ACTION_MAIN ).setPackage( "eu.freemoser.Lazarusnote" ).addCategory( Intent.CATEGORY_LAUNCHER ) ) );leider passiert nicht
danke an alle die sich das durchglesen haben.
-
danke für eure schnelle hilfe
Zitatnoch einen Möglichkeit, außer der von titus beschriebenen.
Wie wäre es mit einer "neuen" Liste, die du mit den Einträgen der alten füllst, jedoch in der Reihenfolge von hinten nach vorn.
Die kannst du dann dem ListView geben und die alte Liste löschen, falls du sie nicht mehr brauchst......ich versteh nicht so ganz was du meinst bzw wie das funktionieren soll
-
Hallo,
ich habe eine Activity mit einem Listview. Ich fülle den Listview mit ein SimpleCursorAdapter ich möchte jetzt aber das die liste sozusagen gespiegelt wird (damit die neuen Einträge oben sind)
Jetzt:
Esse
Trinken
Kosten
...soll:
Kosten
Trinken
Essen
,,,weiß jemand wie das geht? Danke schon mal im vorraus
-
Hallo,
ich habe ein kleines Problem und bräuchte hilfe Also folgendes:
ich möchte das der Anwender meiner App sich selbst ein Hintergrundbild aus der Galerie aussuchen kann, welches dann beim Listfragment verwendet wird (als Hintergrund).
Die Auswahl passiert bei den Einstellungen :
Zitatprotected void onActivityResult( int requestCode, int resultCode, Intent imageReturnedIntent )
{
switch ( requestCode )
{
case SELECT_PHOTO:
if ( resultCode == RESULT_OK )
{
Uri selectedImage = imageReturnedIntent.getData();
InputStream imageStream;
String test = imageReturnedIntent.getDataString();
Toast.makeText( this, test, Toast.LENGTH_SHORT ).show();SharedPreferences pref = getSharedPreferences( "BackgorundBoolean", 0 );
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean( "BackgorundBoolean", true );
editor.commit();SharedPreferences pref2 = getSharedPreferences( "BackgorundString", 0 );
SharedPreferences.Editor editor2 = pref2.edit();
editor2.putString( "BackgBoolen", test );
editor2.commit();
// hier steht noch mehr ist aber nicht mehr relevantnun wird bei mein Listfragment in onCreate folgende methode aufgerufen :
Zitat
private void ladeBackground()
{
Boolean background = ladePref1();
if ( background == true )
{
String path = lasePref2();
Drawable d = Drawable.createFromPath( path );
getListView().setBackgroundDrawable( d );
}
}private String lasePref2()
{
// Lade den String zum Bild
SharedPreferences pref = getActivity().getSharedPreferences( "BackgorundString", 0 );
return pref.getString( "BackgBoolen", "" );}
private Boolean ladePref1()
{
// Lade den Boolean Background
SharedPreferences pref = getActivity().getSharedPreferences( "BackgorundBoolean", 0 );
return pref.getBoolean( "BackgorundBoolean", false );
}leider stürzt da dann auch die App ab, aber ich verstehe nicht wieso, ich hab log.txt beigefügt.
Ich bedanke mich schon mal fürs durchlesen
-
hab den fehler gefunden hätte
Zitat
mRowId = extras != null ? extras.getLong(DatenbankManager.NOTE_ROWID)
: null;heißen müssen
-
Hi,
erst mal danke für eure schnelle Antworten
____________________________________________________________________________________________________titus:
wieso
Zitatnew String[]{rowId}
soll doch ein Long sein.
____________________________________________________________________________________________________jetzt hab ich das Problem das mRowId null ist :(, ist das erste mal das ich mit fragmenten arbeite und dieses ebige zieck zack ist noch verwirrend Sollte wer zeit und lust haben den Code mal durch zu sehen :
DatenbankManager: http://paste.ubuntu.com/1472536/
listDetailActivity: http://paste.ubuntu.com/1472546/
listDetailFragment: http://paste.ubuntu.com/1472551/
listListActivity: http://paste.ubuntu.com/1472554/
listListFragment: http://paste.ubuntu.com/1472557/Ich vermute das der Fehler bei listDetailActivity liegt.
-
du kannst einfach in deiner Activity eine Methode erstellen die, die Daten abfangt:
Zitat
public void setDatum(int getyear, int getmouth, int getday) {
getyear = year;
getmouth = mounth;
getday = day;
}dann einfach noch beim DatePickerFragment folgendes ergrenzen
Zitat
public void onDateSet(DatePicker view, int year, int month, int day) {((DeineActivity) getActivity()).setDatum(year, month, day);
}
-
Hallo,
Ich habe folgendes Problem ich versuche eine Notiz die in meiner Datenbank gespeichert ist wieder zu öffnen. Leider bekomme ich Folgenden Fehler
Zitatandroid.database.CursorIndexOutOfBounds
weiß auch nicht wo der fehler liegt (hab schon zu google gegriffen) ich hoffe mir kann hier einer weiter helfen. Ich hoffe ich habe alle Wichtigen Code stellen erwischtDatenbankManager:
Zitatpublic Cursor fetchNote(long rowId) throws SQLException {
Cursor mCursor =
nDb.query(true, DATABASE_TABLE, new String[] {NOTE_ROWID,
NOTE_TITLE, NOTE_BODY}, NOTE_ROWID + "=" + rowId, null,
null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;}
DetaiFragment
Zitat
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDbHelper = new DatenbankManager(getActivity());
mDbHelper.open();
if (getArguments().containsKey(rowID)) {
getArguments().getString(rowID);
}
mRowId = (savedInstanceState == null) ? null :
(Long) savedInstanceState.getSerializable(DatenbankManager.NOTE_ROWID);
if (mRowId == null) {
Bundle extras = getActivity().getIntent().getExtras();
mRowId = getArguments().getString(rowID) != null ? extras.getLong(DatenbankManager.NOTE_ROWID)
: null;
}
getNoteFromDB();
}Zitat
private void getNoteFromDB() {
if (mRowId != null){
Cursor note = mDbHelper.fetchNote(mRowId);
getActivity().startManagingCursor(note);
String ntitle = (note.getString(note.getColumnIndexOrThrow(DatenbankManager.NOTE_TITLE)));
String btitle = (note.getString(note.getColumnIndexOrThrow(DatenbankManager.NOTE_BODY)));
// test
Toast.makeText(getActivity(), ntitle , Toast.LENGTH_SHORT).show();
}danke schon mal an alle die, die das Durchgelesen haben
-
Hallo,
danke für deine schnelle Antwort
-
Hallo,
Ich hab mithilfe des beispiel Codes von Google mir ein DatePickerFragment erstellt ohne Probleme. Diese wird in einer FragmentActivity aufgerufen. Meine frage ist jetzt wie bekomme ich die daraus gewonnen Daten also Monat tag und Jahr in meine FramentActivity? (das erste mal das ich igw mit Fragmenten mach ^^)
Zitat
import android.content.Intent;
import android.content.SharedPreferences;import java.util.Calendar;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.DatePicker;public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}public void onDateSet(DatePicker view, int year, int month, int day) {
}}
Dank schon mal im voraus