編輯:關於Android編程
要監聽android打電話和接電話,只需下面2步驟
1.第一步,寫一個Receiver繼承自BroadcastReceiver
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
public class PhoneStateBroadCastReceiver extends BroadcastReceiver
{
private static final String TAG = "PhoneStateBroadCastReceiver";
private static boolean mIncomingFlag = false;
private static String mIncomingNumber = null;
@Override
public void onReceive(Context context, Intent intent)
{
// 如果是撥打電話
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))
{
mIncomingFlag = false;
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.i(TAG, "call OUT:" + phoneNumber);
} else
{
// 如果是來電
TelephonyManager tManager =
(TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
switch (tManager.getCallState())
{
case TelephonyManager.CALL_STATE_RINGING:
mIncomingNumber = intent.getStringExtra("incoming_number");
Log.i(TAG, "RINGING :" + mIncomingNumber);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
if (mIncomingFlag)
{
Log.i(TAG, "incoming ACCEPT :" + mIncomingNumber);
}
break;
case TelephonyManager.CALL_STATE_IDLE:
if (mIncomingFlag)
{
Log.i(TAG, "incoming IDLE");
}
break;
}
}
}
}
第二步:在AndroidManifest.xml,配置寫好的Receiver,並攔截相應的BroadCastAction,
另外注意加上相應的權限
<receiver android:name=".broadcase.PhoneStateBroadCastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
1.概述 視頻講解都已經錄了好幾天,但是最近實在抽不開身一直在忙Unity3D,就連光棍節都在寫,上次我們只是寫了Android 6.0 運行時權限處理解析,但是並未對
1.定位相關的一些API1)LocationManager官方API文檔:LocationManager這玩意是系統服務來的,不能直接new,需要
第一個動畫文件btn_anim.xml 2-在res文件夾 anim文件夾下面,建立第二個文件layout_anim.xml):
本文實例為大家分享了Android自定義加載控件,第一次小人跑動的加載效果眼前一亮,相比傳統的PrograssBar高大上不止一點,於是走起,自定義了控件LoadingV