android打電話界面
❶ 在androidstudio實現打電話功能真的會打出去嗎
在androidstudio實現打電話功能真的會打出去。
1、新建工程後,編輯界面。
2、點擊圖像按鈕時其實是啟動了另外一個activity。
3、編輯MainActivity。
4、添加許可權。
5、安卓6以上需要額外添加一個許可權申請。
6、即可實現效果。
❷ Android 跳轉到撥號界面如何自動填寫手機號,但是不自動撥出
1、跳轉到撥號界面,代碼如下:
1)直接撥打
java">IntentintentPhone=newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber));
startActivity(intentPhone);
2)跳轉到撥號界面
Intentintent=newIntent(Intent.ACTION_DIAL,Uri.parse("tel:"+phoneNumber));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
2、跳轉到聯系人頁面,使用一下代碼:
IntentintentPhone=newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber));
startActivity(intentPhone);
❸ 100分 Android怎麼調用打電話而不顯示系統的通話界面
1、 用反射調用 「com.android.internal.telephony.PhoneFactory」,「com.android.internal.telephony.CallManager」,「com.android.internal.telephony.Phone」中的方法。
代碼如下:
public void Call(String number, Context context) {
try {
final Class<?> phoneFactoryClass = Class.forName("com.android.internal.telephony.PhoneFactory");
Method makeDefaultPhonesMethod = phoneFactoryClass.getDeclaredMethod("makeDefaultPhones", Context.class);
makeDefaultPhonesMethod.invoke(null, context);
Method getDefaultPhone = phoneFactoryClass.getDeclaredMethod("getDefaultPhone");
Object phone = getDefaultPhone.invoke(getDefaultPhone);
final Class<?> callManagerClass = Class.forName("com.android.internal.telephony.CallManager");
Method getInstanceMethod = callManagerClass.getDeclaredMethod("getInstance");
Object callManager = getInstanceMethod.invoke(getInstanceMethod);
final Class<?> phoneClass = Class.forName("com.android.internal.telephony.Phone");
Method registerPhoneMethod = callManagerClass.getDeclaredMethod("registerPhone", phoneClass);
registerPhoneMethod.invoke(callManager, phone);
Method maybeGetMethod = callManagerClass.getDeclaredMethod("getDefaultPhone");
Object phone1 = maybeGetMethod.invoke(callManager);
Method dial = phoneClass.getDeclaredMethod("dial", String.class);
dial.invoke(phone1, number);
} catch (ClassNotFoundException e) {
String string = e.getCause().toString();
Log.e("CallTest" ,string);
} catch (Exception e) {
String string = e.getCause().toString();
Log.e("CallTest" ,string);
}
}
2、在manifest中加如下許可權
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.callphone"
android:sharedUserId="android.uid.system"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name= "andoird.permission.CALL_PHONE"/>
<uses-permission android:name= "andoird.permission.CALL_PRIVILEGED"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL"/>
3、將生成的apk用系統簽名,不同的OS有不同的簽名,例如我用的是
java -jar signapk.jar platform.x509.pem platform.pk8 Callphone_unsigned.apk Callphone_signed.apk。其中platform.x509.pem platform.pk8在不同的OS中不同。
備註:用sharedUserId和系統簽名後,程序才有許可權運行。同理,程序不能調試,只能log跟蹤。