pra*_*gai 1 android phone-call phone-number
可能重复:
拨打号码时启动我的应用程序
我想从我的Android应用程序中用户拨打的拨号器中获取手机号码.我已经实现了如下应用程序:
((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:")));
}
});
Run Code Online (Sandbox Code Playgroud)
从上面的代码我可以打开拨号器app.如果用户输入手机号码并点击呼叫,那么我想得到他输入的号码.请任何身体帮助...
小智 9
你可以使用BroadcastReceiverto这样做:
在Manifest文件中注册这样的BroadcastReceiver:
<!-- DIAL Receiver -->
<receiver
android:exported="true"
android:name="receivers.DialBroadcastReceiver" >
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
你需要NEW_OUTGOING_CALL的权限:
<!-- OUTGOING CALL PERMISSION-->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
Run Code Online (Sandbox Code Playgroud)
最终,您可以接收广播并检索拨打的号码,如下所示:
public class DialBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.v("DileBroadCastReceiver","In onReceive()");
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.v("DialBroadcast Receiver","Number is: "+number);
}
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
4636 次 |
| 最近记录: |