亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1328 | 回復(fù): 1
打印 上一主題 下一主題

[Android] android鬧鈴簡單實(shí)現(xiàn) [復(fù)制鏈接]

論壇徽章:
2
操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-06-26 22:20:00每日論壇發(fā)貼之星
日期:2015-06-26 22:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-07-08 11:32 |只看該作者 |倒序?yàn)g覽
[Java]代碼
  1. 1.鬧鈴activity

  2. package com.example.myalarm;

  3. import java.util.Calendar;
  4. import java.util.Date;
  5. import java.util.Locale;

  6. import android.media.RingtoneManager;
  7. import android.net.Uri;
  8. import android.os.Bundle;
  9. import android.provider.MediaStore;
  10. import android.app.Activity;
  11. import android.app.AlarmManager;
  12. import android.app.PendingIntent;
  13. import android.app.TimePickerDialog;
  14. import android.app.TimePickerDialog.OnTimeSetListener;
  15. import android.content.Intent;
  16. import android.database.Cursor;
  17. import android.util.Log;
  18. import android.view.Menu;
  19. import android.view.View;
  20. import android.view.View.OnClickListener;
  21. import android.widget.Button;
  22. import android.widget.TimePicker;

  23. public class AlarmActivity extends Activity {
  24.      
  25.     private static final String TAG = "AlarmActivity";
  26.      
  27.     AlarmManager alarmManager;
  28.     Calendar calendar = Calendar.getInstance(Locale.CHINESE);
  29.     Button setTime;
  30.     Button setRing;
  31.     Button setOver;
  32.     Uri ringUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

  33.     @Override
  34.     protected void onCreate(Bundle savedInstanceState) {
  35.         super.onCreate(savedInstanceState);
  36.         setContentView(R.layout.activity_alarm);
  37.         alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
  38.         setTime = (Button) findViewById(R.id.setTime);
  39.         setRing = (Button) findViewById(R.id.setRing);
  40.         setOver = (Button) findViewById(R.id.setOver);
  41.         //setTime();
  42.         //setRingtone();
  43.         setTimeAndRing();
  44.     }

  45.     private void setTimeAndRing(){
  46.         setTime.setOnClickListener(new OnClickListener() {
  47.             
  48.             @Override
  49.             public void onClick(View view) {
  50.                 setTime();
  51.             }
  52.         });
  53.         setRing.setOnClickListener(new OnClickListener() {
  54.             
  55.             @Override
  56.             public void onClick(View view) {
  57.                 setRingtone();
  58.             }
  59.         });
  60.          
  61.         setOver.setOnClickListener(new OnClickListener() {
  62.             
  63.             @Override
  64.             public void onClick(View view) {
  65.                 setAlarm(calendar);
  66.             }
  67.         });
  68.     }
  69.     //啟動(dòng)鬧玲,設(shè)置鬧玲
  70.     private void setAlarm(Calendar calendar){
  71.         Intent intent = new Intent();
  72.         intent.setClass(this, AlarmBroadcastReceiver.class);
  73.         intent.putExtra("msg", "Get up!Get up!");
  74.         intent.putExtra("ringURI", ringUri.toString());
  75.         Log.d(TAG, ringUri.toString());
  76.         PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
  77.         alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), pendingIntent);
  78.     }
  79.     //設(shè)置時(shí)間
  80.     private void setTime(){
  81.         Date date = new Date();
  82.         calendar.setTime(date);
  83.         int hour = calendar.get(Calendar.HOUR);
  84.         int minute = calendar.get(Calendar.MINUTE);
  85.         new TimePickerDialog(this, new OnTimeSetListener() {
  86.             
  87.             @Override
  88.             public void onTimeSet(TimePicker timePicker, int hour, int minute) {
  89.                 calendar.set(Calendar.HOUR,hour);
  90.                 calendar.set(Calendar.MINUTE,minute);
  91.             }
  92.         }, hour, minute, true).show();
  93.     }
  94.      
  95.      
  96.     //設(shè)置鬧玲鈴聲
  97.     private void setRingtone(){
  98.         Intent intent = new Intent();
  99.         intent.setAction(RingtoneManager.ACTION_RINGTONE_PICKER);
  100.         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
  101.         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "設(shè)置鬧玲鈴聲");
  102.         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALL);
  103.         Uri pickedUri = RingtoneManager.getActualDefaultRingtoneUri(this,RingtoneManager.TYPE_ALARM);
  104.         if (pickedUri!=null) {
  105.             intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,pickedUri);
  106.             ringUri = pickedUri;
  107.         }
  108.         startActivityForResult(intent, 1);
  109.     }
  110.      
  111.      
  112.      
  113.      
  114.     @Override
  115.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  116.         super.onActivityResult(requestCode, resultCode, data);
  117.         if (resultCode!=RESULT_OK) {
  118.             return;
  119.         }
  120.         switch (requestCode) {
  121.         case 1:
  122.             //獲取選中的鈴聲的URI
  123.             Uri pickedURI = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
  124.             Log.i(TAG,pickedURI.toString());
  125.             RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, pickedURI);
  126.             getName(RingtoneManager.TYPE_ALARM);
  127.             break;

  128.         default:
  129.             break;
  130.         }
  131.     }

  132.     private void getName(int type){
  133.         Uri pickedUri = RingtoneManager.getActualDefaultRingtoneUri(this, type);
  134.         Log.i(TAG,pickedUri.toString());
  135.         Cursor cursor = this.getContentResolver().query(pickedUri, new String[]{MediaStore.Audio.Media.TITLE}, null, null, null);
  136.         if (cursor!=null) {
  137.             if (cursor.moveToFirst()) {
  138.                 String ring_name = cursor.getString(0);
  139.                 Log.i(TAG,ring_name);
  140.                 String[] c = cursor.getColumnNames();
  141.                 for (String string : c) {
  142.                     Log.i(TAG,string);
  143.                 }
  144.             }
  145.             cursor.close();
  146.         }
  147.     }
  148.      
  149.     @Override
  150.     public boolean onCreateOptionsMenu(Menu menu) {
  151.         getMenuInflater().inflate(R.menu.alarm, menu);
  152.         return true;
  153.     }

  154. }
  155. 2,布局文件
  156. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  157.     xmlns:tools="http://schemas.android.com/tools"
  158.     android:layout_width="match_parent"
  159.     android:layout_height="match_parent"
  160.     >

  161.    
  162.     <Button android:id="@+id/setTime"
  163.         android:layout_width="wrap_content"
  164.         android:layout_height="wrap_content"
  165.         android:text="設(shè)置時(shí)間"/>
  166.      
  167.     <Button android:id="@+id/setRing"
  168.         android:layout_width="wrap_content"
  169.         android:layout_height="wrap_content"
  170.         android:layout_below="@+id/setTime"
  171.         android:text="設(shè)置鈴聲"/>
  172.      
  173.     <Button android:id="@+id/setOver"
  174.         android:layout_width="wrap_content"
  175.         android:layout_height="wrap_content"
  176.         android:layout_below="@+id/setRing"
  177.         android:text="設(shè)置完成"/>
  178.      

  179. </RelativeLayout>
  180. 3.廣播接收鬧鈴信息:
  181. package com.example.myalarm;

  182. import java.io.IOException;

  183. import android.content.BroadcastReceiver;
  184. import android.content.Context;
  185. import android.content.Intent;
  186. import android.media.MediaPlayer;
  187. import android.net.Uri;
  188. import android.util.Log;
  189. import android.widget.Toast;

  190. public class AlarmBroadcastReceiver extends BroadcastReceiver {
  191.      
  192.     Uri ringUri;

  193.     @Override
  194.     public void onReceive(Context context, Intent intent) {
  195.         String msg = intent.getStringExtra("msg");
  196.         Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
  197.         MediaPlayer mp = new MediaPlayer();
  198.         String uri = intent.getStringExtra("ringURI");
  199.         if (uri!=null) {
  200.             ringUri = Uri.parse(uri);
  201.             Log.d("AlarmActivity", ringUri.toString());
  202.         }
  203.          
  204.         try {
  205.             mp.setDataSource(context, ringUri);
  206.             mp.prepare();
  207.         } catch (IllegalArgumentException e) {
  208.             e.printStackTrace();
  209.         } catch (SecurityException e) {
  210.             e.printStackTrace();
  211.         } catch (IllegalStateException e) {
  212.             e.printStackTrace();
  213.         } catch (IOException e) {
  214.             e.printStackTrace();
  215.         }
  216.         mp.start();
  217.     }

  218. }
  219. 4.在manifest文件中注冊廣播
  220. <receiver android:name="com.example.myalarm.AlarmBroadcastReceiver"></receiver>
復(fù)制代碼

論壇徽章:
59
2015七夕節(jié)徽章
日期:2015-08-24 11:17:25ChinaUnix專家徽章
日期:2015-07-20 09:19:30每周論壇發(fā)貼之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38榮譽(yù)版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年紀(jì)念徽章
日期:2015-07-20 11:05:27IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-07-20 11:05:34操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:36程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:40數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:432015年辭舊歲徽章
日期:2015-07-20 11:05:44
2 [報(bào)告]
發(fā)表于 2015-07-11 20:41 |只看該作者
其實(shí)就是一個(gè)響鈴,振動(dòng)和計(jì)時(shí)的功能實(shí)現(xiàn)。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP