『壹』 Android开发,如何编程实现开启电话的免提功能
java编写,对应拨打电话只需要调用ACTION_CALL加对应电话号码可以如下编写:
viewplain
voidcallPhone(){
Intentintent=newIntent(Intent.ACTION_CALL,Uri.parse("tel:110"));//不能调用呼叫
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
但是当拨打110,119,120等紧急电话时,无法自动呼出,还需要用户进行确认操作,那么就需要实现直接进行呼叫,但是前提app必须用系统级别权限,及system/app/目录下方可。
首先确保应用具有如下权限:
viewplain
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
<uses-permissionandroid:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permissionandroid:name="android.permission.CALL_PRIVILEGED"/>
同样调用intent来开启功能,不过内容有些变化
viewplain
voidcallPhone(Stringnum){
Intentintent=newIntent("android.intent.action.CALL_PRIVILEGED",Uri.parse("tel:"+num));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
然后在源码下编译,放到/system/app/即可使用。
开启拨通电话后设置开启扬声器功能:
首先,获取音频管理器:audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
设置电话监听:
viewplain
{
booleancomingPhone=false;
@Override
publicvoidonCallStateChanged(intstate,StringincomingNumber){
switch(state){
caseTelephonyManager.CALL_STATE_IDLE:/*无任何状态*/
Log.d(tag,"phoneidle");
if(this.comingPhone){
this.comingPhone=false;
backMyApp();
setSpeekModle(false);
}
break;
caseTelephonyManager.CALL_STATE_OFFHOOK:/*接起电话*/
Log.d(tag,"phoneanswer");
this.comingPhone=true;
setSpeekModle(true);
break;
caseTelephonyManager.CALL_STATE_RINGING:/*电话进来*/
Log.d(tag,"phonecoming");
this.comingPhone=true;
setSpeekModle(true);
break;
}
}
}
注册监听类:
viewplain
TelephonyManagertelManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
TelListnerlistener=newTelListner();
telManager.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);
开启或关闭免提功能:
viewplain
voidsetSpeekModle(booleanopen){
//audioManager.setMode(AudioManager.ROUTE_SPEAKER);
currVolume=audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
audioManager.setMode(AudioManager.MODE_IN_CALL);
if(!audioManager.isSpeakerphoneOn()&&true==open){
audioManager.setSpeakerphoneOn(true);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
AudioManager.STREAM_VOICE_CALL);
}elseif(audioManager.isSpeakerphoneOn()&&false==open){
audioManager.setSpeakerphoneOn(false);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,currVolume,
AudioManager.STREAM_VOICE_CALL);
}
}
添加权限:
viewplain
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
『贰』 android开发怎么拨打电话
步骤一::新建一个Android工程,命名为Callph.
步骤二:设计程序的界面,打开activity_main.xml把内容修改如下:
<linearlayout xmlns:android="schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Textview
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/call_text">
</textview>
<Edittext
android:id="@+id/et1"
android:inputtype="phone"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Edittext>
<button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/call_phone">
</button>
</linearlayout>
步骤三:增加拨打电话的权限,打开AndroidManifest.xml,修改代码如下:
<manifest xmlns:android="schemas.android.com/apk/res/android" package="com.lauking.callph" android:versioncode="1" android:versionname="1.0">
<uses-sdk android:minsdkversion="8" android:targetsdkversion="15"> </uses-sdk> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
<activity android:name="com.lauking.callph.MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"> </action>
<category android:name="android.intent.category.LAUNCHER"> </category>
</intent-filter>
</activity>
</application>
</manifest>
步骤四:添加拨出电话的权限
<uses-permission android:name="android.permission.CALL_PHONE">
</uses-permission>
步骤五:主程序MainActivity.java代码如下:
package com.lauking.callph;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity {
private Button bt;
private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 取得资源
bt = (Button) findViewById(R.id.bt1);
et = (EditText) findViewById(R.id.et1);
// 增加事件响应
bt.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// 取得输入的电话号码串
String inputStr = et.getText().toString();
// 如果输入不为空创建打电话的Intent
if (inputStr.trim().length() != 0) {
Intent phoneIntent = new Intent(
"android.intent.action.CALL", Uri.parse("tel:"
+ inputStr));
// 启动
startActivity(phoneIntent);
}
// 否则Toast提示一下
else {
Toast.makeText(MainActivity.this, "不能输入为空",
Toast.LENGTH_LONG).show();
}
}
});
}
}
『叁』 怎么样才能在Android手机上面触发拨打电话
开发步骤:
1 新建一个工程,取名为TestCallphone
『肆』 谁能给你们写好的Android开发的打电话和接电话功能的代码或者说下,该怎么样开发这样的一个软件。
我有系统2.3电话的源码,你要么
『伍』 android 锁屏打电话怎么实现
我朋友手机也发生过这样的情况 一般是第三方软件造成的 恢复出厂设置就可以了 但是你的是刷过机的 硬格 恢复出厂设置 看看有用没有 不然就得找专业人士了
『陆』 android 从数据库读取到的电话,实现打电话功能
(一)、拨打电话:
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
//intent.setAction("android.intent.action.CALL"); //以下各项皆如此,都有两种写法。
intent.setData(Uri.parse("tel:1320010001"));
startActivity(intent);
//调用拨专号面板属:
Intent intent=new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:1320010001"));
startActivity(intent);
//调用拨号面板:
Intent intent=new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("tel:1320010001"));
startActivity(intent);
『柒』 Android怎么编程实现摇一摇手机拨打电话功能
网友说:首先你的将你的手机ROOT(方法你可以网络“你的手机型号+ROOT”),然后呢再登陆QQ,在设专置里面开启属QQ的截屏功能,然后即使离开了QQ界面也可以摇一摇截图了。另外,安卓手机的话可以直接“电源键+音量增大键”来进行截屏的
『捌』 安卓手机有没有自动拨打电话的软件啊
有,语音助手类别的
oppo的小欧,只要你对着手机说出打电话给某某,就会自动打电话给对方
360手机卫士
『玖』 Android怎么实现打电话源码
发短信:
String msg="测试内容";
String no="110"; // 号码
SmsManager manager=SmsManager.getDefault();
ArrayList<String> msgs=manager.divideMessage(msg);
// 以下是为了防止短信内容超过一条限制,如果超出则自动分条
for(String m:msgs){
manager.sendTextMessage(no, null, m, null, null);
}
打电话
String number = "110";
Intent intent = new Intent();
intent.setAction("android.intent.action.CALL");
intent.setData(Uri.parse("tel:"+ number));
startActivity(intent);//方法内部会自动为Intent添加类别:android.intent.category.DEFAULT
这个在manifest里边都要添加相应权限