html5中文学习网

您的位置: 首页 > android » 正文

android闹铃简单实现_Android

[ ] 已经帮助:人解决问题

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先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助