RingtoneChooser

  • Antworten:0
Lukas Gregori
  • Forum-Beiträge: 2

14.09.2011, 21:18:04 via Website

Erstmal halllo an alle die den Bericht lesen:P

Ich muss für meine Abschlussarbeit an meiner Schule eine App in Kooperation mit einer firma erstellen. Teil der App soll eine "KlingeltonChooser sein", soll heißen man kann sich durch eine Galery scrollen,klickt auf ein Bild und dadurch wird ein Song als Klingelton festgelegt. Wenn ich das aber so programmiere wie im Code unten, dann bekomme ich Folgende Warnung bei der LogCat: data Changed but no participant pkg=`com.android.provider.settings` uid=10114

Hoffe auf Baldige Antwort, Lukas


Code:

package grege.cmp;

import java.io.File;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.res.TypedArray;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;

public class HelloGallery extends Activity {
/** Called when the activity is first created. */
private String[]name = new String[10];

int displayWidth =0;
int displayHeight =0;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Gallery gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageAdapter(this));
name[0]="883 Roadster";
name[1]="Super Low";
name[2]="Iron 883";
name[3]="Nightster";
name[4]="1200 Custom";
name[5]="Forty-Eight";
name[6]="Night Rod Special";
name[7]="XR1200X";
Display display = ((WindowManager)
getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

if(display.getOrientation()==0){
displayWidth = display.getHeight();
displayHeight = display.getWidth();
}else if(display.getOrientation()==1 ){
displayWidth = display.getWidth();
displayHeight = display.getHeight();
}else{
displayWidth = display.getWidth();
displayHeight = display.getHeight();
}

gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
Toast.makeText(HelloGallery.this, "" + name[position], Toast.LENGTH_SHORT).show();

if(position==0){
File k = new File("//res/drawable-hdpi", "diea.mp3"); // path is a file to /sdcard/media/ringtone
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);


ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "Deine Schuld");
values.put(MediaStore.MediaColumns.SIZE, 5159386);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "Die Ärzte");
//values.put(MediaStore.Audio.Media.DURATION, 230);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);

//Insert it into the database

Uri newUri = getContentResolver().insert(uri, values);

RingtoneManager.setActualDefaultRingtoneUri(
HelloGallery.this,
RingtoneManager.TYPE_RINGTONE,
newUri
);
}

}
});
}

public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;

private Integer[] mImageIds = {
R.drawable.sample_0,
R.drawable.sample_1,
R.drawable.sample_2,
R.drawable.sample_3,
R.drawable.sample_4,
R.drawable.sample_5,
R.drawable.sample_6,
R.drawable.sample_7
};

public ImageAdapter(Context c) {
mContext = c;
TypedArray attr = mContext.obtainStyledAttributes(R.styleable.HelloGallery);
mGalleryItemBackground = attr.getResourceId(
R.styleable.HelloGallery_android_galleryItemBackground, 0);
attr.recycle();
}

public int getCount() {
return mImageIds.length;
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);

imageView.setImageResource(mImageIds[position]);
imageView.setLayoutParams(new Gallery.LayoutParams(displayWidth,displayHeight));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setBackgroundResource(mGalleryItemBackground);

return imageView;
}
}
}

Antworten