亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

android鬧鈴簡單實現(xiàn)

 更新時間:2015年03月12日 15:31:31   投稿:hebedich  
本文給大家分享的是一段簡單的實現(xiàn)Android系統(tǒng)的鬧鈴的代碼,非常實用,想做Android開發(fā)的小伙伴們可以參考下。

1.鬧鈴activity

復(fù)制代碼 代碼如下:

package com.example.myalarm;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.Intent;
import android.database.Cursor;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
public class AlarmActivity extends Activity {
    private static final String TAG = "AlarmActivity";
    AlarmManager alarmManager;
    Calendar calendar = Calendar.getInstance(Locale.CHINESE);
    Button setTime;
    Button setRing;
    Button setOver;
    Uri ringUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_alarm);
        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        setTime = (Button) findViewById(R.id.setTime);
        setRing = (Button) findViewById(R.id.setRing);
        setOver = (Button) findViewById(R.id.setOver);
        //setTime();
        //setRingtone();
        setTimeAndRing();
    }
    private void setTimeAndRing(){
        setTime.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                setTime();
            }
        });
        setRing.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                setRingtone();
            }
        });
        setOver.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                setAlarm(calendar);
            }
        });
    }
    //啟動鬧玲,設(shè)置鬧玲
    private void setAlarm(Calendar calendar){
        Intent intent = new Intent();
        intent.setClass(this, AlarmBroadcastReceiver.class);
        intent.putExtra("msg", "Get up!Get up!");
        intent.putExtra("ringURI", ringUri.toString());
        Log.d(TAG, ringUri.toString());
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
        alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), pendingIntent);
    }
    //設(shè)置時間
    private void setTime(){
        Date date = new Date();
        calendar.setTime(date);
        int hour = calendar.get(Calendar.HOUR);
        int minute = calendar.get(Calendar.MINUTE);
        new TimePickerDialog(this, new OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int hour, int minute) {
                calendar.set(Calendar.HOUR,hour);
                calendar.set(Calendar.MINUTE,minute);
            }
        }, hour, minute, true).show();
    }
    //設(shè)置鬧玲鈴聲
    private void setRingtone(){
        Intent intent = new Intent();
        intent.setAction(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "設(shè)置鬧玲鈴聲");
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALL);
        Uri pickedUri = RingtoneManager.getActualDefaultRingtoneUri(this,RingtoneManager.TYPE_ALARM);
        if (pickedUri!=null) {
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,pickedUri);
            ringUri = pickedUri;
        }
        startActivityForResult(intent, 1);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode!=RESULT_OK) {
            return;
        }
        switch (requestCode) {
        case 1:
            //獲取選中的鈴聲的URI
            Uri pickedURI = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
            Log.i(TAG,pickedURI.toString());
            RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, pickedURI);
            getName(RingtoneManager.TYPE_ALARM);
            break;
        default:
            break;
        }
    }
    private void getName(int type){
        Uri pickedUri = RingtoneManager.getActualDefaultRingtoneUri(this, type);
        Log.i(TAG,pickedUri.toString());
        Cursor cursor = this.getContentResolver().query(pickedUri, new String[]{MediaStore.Audio.Media.TITLE}, null, null, null);
        if (cursor!=null) {
            if (cursor.moveToFirst()) {
                String ring_name = cursor.getString(0);
                Log.i(TAG,ring_name);
                String[] c = cursor.getColumnNames();
                for (String string : c) {
                    Log.i(TAG,string);
                }
            }
            cursor.close();
        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.alarm, menu);
        return true;
    }
}

2,布局文件

復(fù)制代碼 代碼如下:

3.廣播接收鬧鈴信息:

復(fù)制代碼 代碼如下:

package com.example.myalarm;
import java.io.IOException;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.util.Log;
import android.widget.Toast;
public class AlarmBroadcastReceiver extends BroadcastReceiver {
    Uri ringUri;
    @Override
    public void onReceive(Context context, Intent intent) {
        String msg = intent.getStringExtra("msg");
        Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
        MediaPlayer mp = new MediaPlayer();
        String uri = intent.getStringExtra("ringURI");
        if (uri!=null) {
            ringUri = Uri.parse(uri);
            Log.d("AlarmActivity", ringUri.toString());
        }
        try {
            mp.setDataSource(context, ringUri);
            mp.prepare();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mp.start();
    }
}

4.在manifest文件中注冊廣播

復(fù)制代碼 代碼如下:

 <receiver android:name="com.example.myalarm.AlarmBroadcastReceiver"></receiver>

以上代碼就是實現(xiàn)Android鬧鐘的全部代碼了,希望大家能夠喜歡。

相關(guān)文章

  • Android編程實現(xiàn)圖片背景漸變切換與圖層疊加效果

    Android編程實現(xiàn)圖片背景漸變切換與圖層疊加效果

    這篇文章主要介紹了Android編程實現(xiàn)圖片背景漸變切換與圖層疊加效果,涉及Android圖形特效的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • 解析ADT-20問題 android support library

    解析ADT-20問題 android support library

    本篇文章是對ADT-20問題 android support library進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Android圖片選擇器ImageEditContainer

    Android圖片選擇器ImageEditContainer

    這篇文章主要為大家詳細介紹了Android圖片選擇器ImageEditContainer的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android編程中Handler原理及用法實例分析

    Android編程中Handler原理及用法實例分析

    這篇文章主要介紹了Android編程中Handler用法,結(jié)合實例形式分析了Handler的功能,原理及使用技巧,需要的朋友可以參考下
    2016-01-01
  • Android實現(xiàn)閃屏效果

    Android實現(xiàn)閃屏效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)閃屏效果,實現(xiàn)“一閃而過”效果進入頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android中URLEncoder空格被轉(zhuǎn)碼為"+"號的處理辦法

    Android中URLEncoder空格被轉(zhuǎn)碼為"+"號的處理辦法

    當上傳文件的文件名中間有空格,用URLEncoder.encode方法會把空格變成加號(+)在前臺頁面顯示的時候會多出加號,下面這篇文章主要給大家介紹了關(guān)于Android中URLEncoder空格被轉(zhuǎn)碼為"+"號的處理辦法,需要的朋友可以參考下
    2023-01-01
  • android圖庫豎屏不顯示status bar的解決方法

    android圖庫豎屏不顯示status bar的解決方法

    圖庫在JB和JB2的版本上顯示的行為是:橫屏全屏顯示,豎屏會顯示status bar,圖庫在JB和JB2的版本上顯示的行為是:橫屏全屏顯示,豎屏會顯示status bar,具體實現(xiàn)方法如下,不會的朋友可以參考下哈
    2013-06-06
  • Android中fragment嵌套fragment問題解決方法

    Android中fragment嵌套fragment問題解決方法

    這篇文章主要介紹了Android中fragment嵌套fragment問題解決方法,本文給出兩個解決方法,需要的朋友可以參考下
    2015-06-06
  • Android9.0上針對Toast的特殊處理圖文詳解

    Android9.0上針對Toast的特殊處理圖文詳解

    這篇文章主要給大家介紹了關(guān)于Android9.0上針對Toast的特殊處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Android Listview中顯示不同的視圖布局詳解及實例代碼

    Android Listview中顯示不同的視圖布局詳解及實例代碼

    這篇文章主要介紹了Android Listview中顯示不同的視圖布局詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02

最新評論