android 定时打电话教程

http://www.eoeandroid.com/thread-188604-1-1.html

由于同学要求,希望有人能定点打电话给她,故开发了这个小程序,如果有人要更多的功能,可以提!

主界面,设置时间并且时间到发送广播

需要了解下PendingIntent ,AlarmManager,Broadcast


package com.zhuyan;



import java.util.Calendar;



import com.zhuyan.broadcast.AlarmReceiver;



import android.app.Activity;

import android.app.AlarmManager;

import android.app.PendingIntent;

import android.app.TimePickerDialog;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.TimePicker;



public class TimingDialActivity extends Activity {

        /\*\* Called when the activity is first created. \*/



        private static final String TAG = "TimingDialActivity";

        Button mButtonStart;

        Button mButtonStop;

        EditText telPhoneEditText;



        TextView mTextView;



        Calendar calendar;



        /\*\* Called when the activity is first created. \*/

        @Override

        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);



                setContentView(R.layout.main);

                calendar \= Calendar.getInstance();



                mTextView \= (TextView) findViewById(R.id.phone\_view);

                mButtonStart \= (Button) findViewById(R.id.set\_time);

                mButtonStop \= (Button) findViewById(R.id.cancel\_time);

                telPhoneEditText \= (EditText) findViewById(R.id.tel\_number);



                mButtonStart.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View v) {

                                calendar.setTimeInMillis(System.currentTimeMillis());

                                int mHour = calendar.get(Calendar.HOUR\_OF\_DAY);

                                int mMinute = calendar.get(Calendar.MINUTE);

                                new TimePickerDialog(TimingDialActivity.this,

                                                new TimePickerDialog.OnTimeSetListener() {

                                                        public void onTimeSet(TimePicker view,

                                                                        int hourOfDay, int minute) {

                                                                calendar.setTimeInMillis(System

                                                                                .currentTimeMillis());

                                                                calendar.set(Calendar.HOUR\_OF\_DAY, hourOfDay);

                                                                calendar.set(Calendar.MINUTE, minute \- 1);

                                                                calendar.set(Calendar.SECOND, 0);

                                                                calendar.set(Calendar.MILLISECOND, 0);



                                                                Intent intent \= new Intent(

                                                                                TimingDialActivity.this,

                                                                                AlarmReceiver.class);

                                                                intent.putExtra("tel\_phone", telPhoneEditText

                                                                                .getText().toString());

                                                                PendingIntent pendingIntent \= PendingIntent

                                                                                .getBroadcast(TimingDialActivity.this,

                                                                                                0, intent, 0);

                                                                AlarmManager am;

                                                                am \= (AlarmManager) getSystemService(ALARM\_SERVICE);

                                                                // am.set(AlarmManager.RTC\_WAKEUP, calendar

                                                                // .getTimeInMillis(), pendingIntent);

                                                                am.setRepeating(AlarmManager.RTC\_WAKEUP,

                                                                                calendar.getTimeInMillis(),

                                                                                (24 \* 60 \* 60 \* 1000), pendingIntent);

                                                                SharedPreferences preference \= getSharedPreferences("zhuyan",

                                                                                Context.MODE\_PRIVATE);

                                                                Editor edit \= preference.edit();

                                                                edit.putString("tel\_phone", telPhoneEditText.getText().toString());

                                                                edit.commit();

                                                                String tmpS \= telPhoneEditText.getText()

                                                                                .toString()

                                                                                \+ "->"

                                                                                + format(hourOfDay)

                                                                                \+ ":" + format(minute);

                                                                mTextView.setText(tmpS);

                                                        }

                                                }, mHour, mMinute, true).show();

                        }

                });



                mButtonStop.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View v) {

                                Intent intent \= new Intent(TimingDialActivity.this,

                                                AlarmReceiver.class);

                                PendingIntent pendingIntent \= PendingIntent.getBroadcast(

                                                TimingDialActivity.this, 0, intent, 0);

                                AlarmManager am;

                                am \= (AlarmManager) getSystemService(ALARM\_SERVICE);

                                am.cancel(pendingIntent);

                                mTextView.setText("Cancelled");

                        }

                });

        }



        private String format(int x) {

                String s \= "" + x;

                if (s.length() == 1)

                        s \= "0" + s;

                return s;

        }



        @Override

        protected void onStart() {

                // TODO Auto-generated method stub

                super.onStart();



                SharedPreferences preference \= getSharedPreferences("zhuyan",

                                Context.MODE\_PRIVATE);

                telPhoneEditText.setText(preference.getString("tel\_phone","10086"));

        }



        @Override

        protected void onStop() {

                // TODO Auto-generated method stub

                super.onStop();

                SharedPreferences preference \= getSharedPreferences("zhuyan",

                                Context.MODE\_PRIVATE);

                Editor edit \= preference.edit();

                edit.putString("tel\_phone", telPhoneEditText.getText().toString());

                edit.commit();

        }



}

//broadcast  接受广播


package com.zhuyan.broadcast;



import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.net.Uri;

import android.os.Bundle;

import android.util.Log;



public class AlarmReceiver extends BroadcastReceiver {



        private final static String TAG = "AlarmReceiver";

        private Context context;



        private String telNumber = "10086";



        public void onReceive(Context context, Intent intent) {

                this.context = context;

                SharedPreferences preference \=context.getSharedPreferences("zhuyan",

                                Context.MODE\_PRIVATE);

                telNumber\=preference.getString("tel\_phone","10086");

                PhoneCall();

        }



        private void PhoneCall() {

                try {

                        Thread.sleep(2000);

                } catch (InterruptedException e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                }



                Uri localUri \= Uri.parse("tel:" + telNumber);

                Intent call \= new Intent(Intent.ACTION\_CALL, localUri);

                call.setFlags(Intent.FLAG\_ACTIVITY\_NEW\_TASK);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值