1.闹铃activityCxuHTML5中文学习网 - HTML5先行者学习网
CxuHTML5中文学习网 - HTML5先行者学习网
package com.example.myalarm;CxuHTML5中文学习网 - HTML5先行者学习网
import java.util.Calendar;CxuHTML5中文学习网 - HTML5先行者学习网
import java.util.Date;CxuHTML5中文学习网 - HTML5先行者学习网
import java.util.Locale;CxuHTML5中文学习网 - HTML5先行者学习网
import android.media.RingtoneManager;CxuHTML5中文学习网 - HTML5先行者学习网
import android.net.Uri;CxuHTML5中文学习网 - HTML5先行者学习网
import android.os.Bundle;CxuHTML5中文学习网 - HTML5先行者学习网
import android.provider.MediaStore;CxuHTML5中文学习网 - HTML5先行者学习网
import android.app.Activity;CxuHTML5中文学习网 - HTML5先行者学习网
import android.app.AlarmManager;CxuHTML5中文学习网 - HTML5先行者学习网
import android.app.PendingIntent;CxuHTML5中文学习网 - HTML5先行者学习网
import android.app.TimePickerDialog;CxuHTML5中文学习网 - HTML5先行者学习网
import android.app.TimePickerDialog.OnTimeSetListener;CxuHTML5中文学习网 - HTML5先行者学习网
import android.content.Intent;CxuHTML5中文学习网 - HTML5先行者学习网
import android.database.Cursor;CxuHTML5中文学习网 - HTML5先行者学习网
import android.util.Log;CxuHTML5中文学习网 - HTML5先行者学习网
import android.view.Menu;CxuHTML5中文学习网 - HTML5先行者学习网
import android.view.View;CxuHTML5中文学习网 - HTML5先行者学习网
import android.view.View.OnClickListener;CxuHTML5中文学习网 - HTML5先行者学习网
import android.widget.Button;CxuHTML5中文学习网 - HTML5先行者学习网
import android.widget.TimePicker;CxuHTML5中文学习网 - HTML5先行者学习网
public class AlarmActivity extends Activity {CxuHTML5中文学习网 - HTML5先行者学习网
private static final String TAG = "AlarmActivity";CxuHTML5中文学习网 - HTML5先行者学习网
AlarmManager alarmManager;CxuHTML5中文学习网 - HTML5先行者学习网
Calendar calendar = Calendar.getInstance(Locale.CHINESE);CxuHTML5中文学习网 - HTML5先行者学习网
Button setTime;CxuHTML5中文学习网 - HTML5先行者学习网
Button setRing;CxuHTML5中文学习网 - HTML5先行者学习网
Button setOver;CxuHTML5中文学习网 - HTML5先行者学习网
Uri ringUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
protected void onCreate(Bundle savedInstanceState) {CxuHTML5中文学习网 - HTML5先行者学习网
super.onCreate(savedInstanceState);CxuHTML5中文学习网 - HTML5先行者学习网
setContentView(R.layout.activity_alarm);CxuHTML5中文学习网 - HTML5先行者学习网
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);CxuHTML5中文学习网 - HTML5先行者学习网
setTime = (Button) findViewById(R.id.setTime);CxuHTML5中文学习网 - HTML5先行者学习网
setRing = (Button) findViewById(R.id.setRing);CxuHTML5中文学习网 - HTML5先行者学习网
setOver = (Button) findViewById(R.id.setOver);CxuHTML5中文学习网 - HTML5先行者学习网
//setTime();CxuHTML5中文学习网 - HTML5先行者学习网
//setRingtone();CxuHTML5中文学习网 - HTML5先行者学习网
setTimeAndRing();CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
private void setTimeAndRing(){CxuHTML5中文学习网 - HTML5先行者学习网
setTime.setOnClickListener(new OnClickListener() {CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
public void onClick(View view) {CxuHTML5中文学习网 - HTML5先行者学习网
setTime();CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
});CxuHTML5中文学习网 - HTML5先行者学习网
setRing.setOnClickListener(new OnClickListener() {CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
public void onClick(View view) {CxuHTML5中文学习网 - HTML5先行者学习网
setRingtone();CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
});CxuHTML5中文学习网 - HTML5先行者学习网
setOver.setOnClickListener(new OnClickListener() {CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
public void onClick(View view) {CxuHTML5中文学习网 - HTML5先行者学习网
setAlarm(calendar);CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
});CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
//启动闹玲,设置闹玲CxuHTML5中文学习网 - HTML5先行者学习网
private void setAlarm(Calendar calendar){CxuHTML5中文学习网 - HTML5先行者学习网
Intent intent = new Intent();CxuHTML5中文学习网 - HTML5先行者学习网
intent.setClass(this, AlarmBroadcastReceiver.class);CxuHTML5中文学习网 - HTML5先行者学习网
intent.putExtra("msg", "Get up!Get up!");CxuHTML5中文学习网 - HTML5先行者学习网
intent.putExtra("ringURI", ringUri.toString());CxuHTML5中文学习网 - HTML5先行者学习网
Log.d(TAG, ringUri.toString());CxuHTML5中文学习网 - HTML5先行者学习网
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);CxuHTML5中文学习网 - HTML5先行者学习网
alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), pendingIntent);CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
//设置时间CxuHTML5中文学习网 - HTML5先行者学习网
private void setTime(){CxuHTML5中文学习网 - HTML5先行者学习网
Date date = new Date();CxuHTML5中文学习网 - HTML5先行者学习网
calendar.setTime(date);CxuHTML5中文学习网 - HTML5先行者学习网
int hour = calendar.get(Calendar.HOUR);CxuHTML5中文学习网 - HTML5先行者学习网
int minute = calendar.get(Calendar.MINUTE);CxuHTML5中文学习网 - HTML5先行者学习网
new TimePickerDialog(this, new OnTimeSetListener() {CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
public void onTimeSet(TimePicker timePicker, int hour, int minute) {CxuHTML5中文学习网 - HTML5先行者学习网
calendar.set(Calendar.HOUR,hour);CxuHTML5中文学习网 - HTML5先行者学习网
calendar.set(Calendar.MINUTE,minute);CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
}, hour, minute, true).show();CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
//设置闹玲铃声CxuHTML5中文学习网 - HTML5先行者学习网
private void setRingtone(){CxuHTML5中文学习网 - HTML5先行者学习网
Intent intent = new Intent();CxuHTML5中文学习网 - HTML5先行者学习网
intent.setAction(RingtoneManager.ACTION_RINGTONE_PICKER);CxuHTML5中文学习网 - HTML5先行者学习网
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);CxuHTML5中文学习网 - HTML5先行者学习网
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置闹玲铃声");CxuHTML5中文学习网 - HTML5先行者学习网
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALL);CxuHTML5中文学习网 - HTML5先行者学习网
Uri pickedUri = RingtoneManager.getActualDefaultRingtoneUri(this,RingtoneManager.TYPE_ALARM);CxuHTML5中文学习网 - HTML5先行者学习网
if (pickedUri!=null) {CxuHTML5中文学习网 - HTML5先行者学习网
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,pickedUri);CxuHTML5中文学习网 - HTML5先行者学习网
ringUri = pickedUri;CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
startActivityForResult(intent, 1);CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
protected void onActivityResult(int requestCode, int resultCode, Intent data) {CxuHTML5中文学习网 - HTML5先行者学习网
super.onActivityResult(requestCode, resultCode, data);CxuHTML5中文学习网 - HTML5先行者学习网
if (resultCode!=RESULT_OK) {CxuHTML5中文学习网 - HTML5先行者学习网
return;CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
switch (requestCode) {CxuHTML5中文学习网 - HTML5先行者学习网
case 1:CxuHTML5中文学习网 - HTML5先行者学习网
//获取选中的铃声的URICxuHTML5中文学习网 - HTML5先行者学习网
Uri pickedURI = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);CxuHTML5中文学习网 - HTML5先行者学习网
Log.i(TAG,pickedURI.toString());CxuHTML5中文学习网 - HTML5先行者学习网
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, pickedURI);CxuHTML5中文学习网 - HTML5先行者学习网
getName(RingtoneManager.TYPE_ALARM);CxuHTML5中文学习网 - HTML5先行者学习网
break;CxuHTML5中文学习网 - HTML5先行者学习网
default:CxuHTML5中文学习网 - HTML5先行者学习网
break;CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
private void getName(int type){CxuHTML5中文学习网 - HTML5先行者学习网
Uri pickedUri = RingtoneManager.getActualDefaultRingtoneUri(this, type);CxuHTML5中文学习网 - HTML5先行者学习网
Log.i(TAG,pickedUri.toString());CxuHTML5中文学习网 - HTML5先行者学习网
Cursor cursor = this.getContentResolver().query(pickedUri, new String[]{MediaStore.Audio.Media.TITLE}, null, null, null);CxuHTML5中文学习网 - HTML5先行者学习网
if (cursor!=null) {CxuHTML5中文学习网 - HTML5先行者学习网
if (cursor.moveToFirst()) {CxuHTML5中文学习网 - HTML5先行者学习网
String ring_name = cursor.getString(0);CxuHTML5中文学习网 - HTML5先行者学习网
Log.i(TAG,ring_name);CxuHTML5中文学习网 - HTML5先行者学习网
String[] c = cursor.getColumnNames();CxuHTML5中文学习网 - HTML5先行者学习网
for (String string : c) {CxuHTML5中文学习网 - HTML5先行者学习网
Log.i(TAG,string);CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
cursor.close();CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
public boolean onCreateOptionsMenu(Menu menu) {CxuHTML5中文学习网 - HTML5先行者学习网
getMenuInflater().inflate(R.menu.alarm, menu);CxuHTML5中文学习网 - HTML5先行者学习网
return true;CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
CxuHTML5中文学习网 - HTML5先行者学习网2,布局文件CxuHTML5中文学习网 - HTML5先行者学习网
CxuHTML5中文学习网 - HTML5先行者学习网<RelativeLayout xmlns:android="
http://schemas.android.com/apk/res/android"
CxuHTML5中文学习网 - HTML5先行者学习网 xmlns:tools="
http://schemas.android.com/tools"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_width="match_parent"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_height="match_parent"
CxuHTML5中文学习网 - HTML5先行者学习网 >
CxuHTML5中文学习网 - HTML5先行者学习网 <Button android:id="@+id/setTime"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_width="wrap_content"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_height="wrap_content"
CxuHTML5中文学习网 - HTML5先行者学习网 android:text="设置时间"/>
CxuHTML5中文学习网 - HTML5先行者学习网 <Button android:id="@+id/setRing"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_width="wrap_content"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_height="wrap_content"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_below="@+id/setTime"
CxuHTML5中文学习网 - HTML5先行者学习网 android:text="设置铃声"/>
CxuHTML5中文学习网 - HTML5先行者学习网 <Button android:id="@+id/setOver"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_width="wrap_content"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_height="wrap_content"
CxuHTML5中文学习网 - HTML5先行者学习网 android:layout_below="@+id/setRing"
CxuHTML5中文学习网 - HTML5先行者学习网 android:text="设置完成"/>
CxuHTML5中文学习网 - HTML5先行者学习网</RelativeLayout>
CxuHTML5中文学习网 - HTML5先行者学习网 CxuHTML5中文学习网 - HTML5先行者学习网3.广播接收闹铃信息:CxuHTML5中文学习网 - HTML5先行者学习网
CxuHTML5中文学习网 - HTML5先行者学习网
package com.example.myalarm;CxuHTML5中文学习网 - HTML5先行者学习网
import java.io.IOException;CxuHTML5中文学习网 - HTML5先行者学习网
import android.content.BroadcastReceiver;CxuHTML5中文学习网 - HTML5先行者学习网
import android.content.Context;CxuHTML5中文学习网 - HTML5先行者学习网
import android.content.Intent;CxuHTML5中文学习网 - HTML5先行者学习网
import android.media.MediaPlayer;CxuHTML5中文学习网 - HTML5先行者学习网
import android.net.Uri;CxuHTML5中文学习网 - HTML5先行者学习网
import android.util.Log;CxuHTML5中文学习网 - HTML5先行者学习网
import android.widget.Toast;CxuHTML5中文学习网 - HTML5先行者学习网
public class AlarmBroadcastReceiver extends BroadcastReceiver {CxuHTML5中文学习网 - HTML5先行者学习网
Uri ringUri;CxuHTML5中文学习网 - HTML5先行者学习网
@OverrideCxuHTML5中文学习网 - HTML5先行者学习网
public void onReceive(Context context, Intent intent) {CxuHTML5中文学习网 - HTML5先行者学习网
String msg = intent.getStringExtra("msg");CxuHTML5中文学习网 - HTML5先行者学习网
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();CxuHTML5中文学习网 - HTML5先行者学习网
MediaPlayer mp = new MediaPlayer();CxuHTML5中文学习网 - HTML5先行者学习网
String uri = intent.getStringExtra("ringURI");CxuHTML5中文学习网 - HTML5先行者学习网
if (uri!=null) {CxuHTML5中文学习网 - HTML5先行者学习网
ringUri = Uri.parse(uri);CxuHTML5中文学习网 - HTML5先行者学习网
Log.d("AlarmActivity", ringUri.toString());CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
try {CxuHTML5中文学习网 - HTML5先行者学习网
mp.setDataSource(context, ringUri);CxuHTML5中文学习网 - HTML5先行者学习网
mp.prepare();CxuHTML5中文学习网 - HTML5先行者学习网
} catch (IllegalArgumentException e) {CxuHTML5中文学习网 - HTML5先行者学习网
e.printStackTrace();CxuHTML5中文学习网 - HTML5先行者学习网
} catch (SecurityException e) {CxuHTML5中文学习网 - HTML5先行者学习网
e.printStackTrace();CxuHTML5中文学习网 - HTML5先行者学习网
} catch (IllegalStateException e) {CxuHTML5中文学习网 - HTML5先行者学习网
e.printStackTrace();CxuHTML5中文学习网 - HTML5先行者学习网
} catch (IOException e) {CxuHTML5中文学习网 - HTML5先行者学习网
e.printStackTrace();CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
mp.start();CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
}CxuHTML5中文学习网 - HTML5先行者学习网
CxuHTML5中文学习网 - HTML5先行者学习网4.在manifest文件中注册广播CxuHTML5中文学习网 - HTML5先行者学习网
CxuHTML5中文学习网 - HTML5先行者学习网
<receiver android:name="com.example.myalarm.AlarmBroadcastReceiver"></receiver>CxuHTML5中文学习网 - HTML5先行者学习网
CxuHTML5中文学习网 - HTML5先行者学习网以上代码就是实现Android闹钟的全部代码了,希望大家能够喜欢。CxuHTML5中文学习网 - HTML5先行者学习网