如何在iPhone上以编程方式拨打电话?我尝试了以下代码但没有发生任何事情:
NSString *phoneNumber = mymobileNO.titleLabel.text;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
Run Code Online (Sandbox Code Playgroud) 在尝试拨打电话号码之前,我需要确定电话号码是否有效.电话可以去世界任何地方.
正则表达式将匹配有效的国际电话号码?
我正在写一个Android应用程序,我需要接听来电,做一些工作,然后结束通话.所有的谷歌搜索后,我能找到两种不同的方式来实现这一二者均不会与最新版本的Android的工作,特别是4.1果冻豆之后.
I.)使用广播接收器中的Java Reflection为"android.intent.action.PHONE_STATE"访问"com.android.internal.telephony.ITelephony".下面的示例代码可以在数百个相关帖子中找到:
public class PhoneCallReceiver extends BroadcastReceiver {
Context context = null;
private static final String TAG = "Phone call";
private ITelephony telephonyService;
@Override
public void onReceive(Context context, Intent intent) {
if (!intent.getAction().equals("android.intent.action.PHONE_STATE"))
return;
Log.v(TAG, "Receving....");
TelephonyManager telephony = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Log.v(TAG, "Get getTeleService...");
Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(telephony);
telephonyService.silenceRinger();
Log.v(TAG, "Answering Call now...");
telephonyService.answerRingingCall();
Log.v(TAG, "Call answered...");
//telephonyService.endCall();
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG,
"FATAL ERROR: could …Run Code Online (Sandbox Code Playgroud) 一旦ACTION_NEW_OUTGOING_CALL播出,我需要捕获对方回答的以下事件.您能否就如何实现这一目标提出建议?我知道有可能因为Android拨号器应用程序在他们拿起时激动地将绿色的android图标更改为该人的照片.谢谢!
更新:我已经看过Android上处理传出呼叫的应用程序的来源.我注意到以下方法ContactsUtils:
/**
* Kick off an intent to initiate a call.
*/
public static void initiateCall(Context context, CharSequence
phoneNumber) {
Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
Uri.fromParts("tel", phoneNumber.toString(), null));
context.startActivity(intent); }
Run Code Online (Sandbox Code Playgroud)
我想我的回答是在听的活动中Intent.ACTION_CALL_PRIVILEGED.所以重新回答我的问题:有谁知道哪个活动处理Intent.ACTION_CALL_PRIVILEGED?先谢谢你
我正在开发一个应用程序,其中我们需要的一件事是控制传出呼叫,至少能够从我们的应用程序中阻止它.
我尝试过使用Intent.ACTION_CALL现有的活动:
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));
startActivity(callIntent);
Run Code Online (Sandbox Code Playgroud)
但是通过API似乎不允许停止呼叫.
你能建议一些解决方法吗?
例如:在通话期间启用飞机模式?只是一个例子; 这个黑客对我不起作用.
我写了一个试图修改电话呼叫状态的应用程序.它在Android 2.2或更低版本上运行良好,但在Android 2.3上抛出异常,因为缺少对android.permission.MODIFY_PHONE_STATE权限的许可(我在AndroidManifest.xml上声明了此权限).任何的想法?以下是异常日志:
01-15 09:14:23.210: ERROR/AndroidRuntime(404): FATAL EXCEPTION: main
01-15 09:14:23.210: ERROR/AndroidRuntime(404): java.lang.RuntimeException: Unable to start receiver test.PhoneReceiver: java.lang.SecurityException: Neither user 10031 nor current process has android.permission.MODIFY_PHONE_STATE.
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1780)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at android.app.ActivityThread.access$2400(ActivityThread.java:117)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:978)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at android.os.Handler.dispatchMessage(Handler.java:99)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at android.os.Looper.loop(Looper.java:123)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at android.app.ActivityThread.main(ActivityThread.java:3647)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at java.lang.reflect.Method.invokeNative(Native Method)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at java.lang.reflect.Method.invoke(Method.java:507)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-15 09:14:23.210: ERROR/AndroidRuntime(404): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-15 09:14:23.210: …Run Code Online (Sandbox Code Playgroud) 我无法在Google的Messenger应用上发送带有图片的彩信.虽然一些Android设备默认安装这个短信应用程序,为此我发送彩信使用时Intent它不起作用.
问题是ToNumber和MMS内容设置,但图像不附加在此应用程序上.
注意: 我已经在我的设备上设置了MMS APN设置,我已经在多个设备上检查了三星s4,摩托罗拉G4 Plus等应用程序.
这是我目前使用的代码.
String toNumbers = "comma seperated mobile numbers";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(getActivity());
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra("address", toNumbers);
sendIntent.setPackage("com.android.mms");
//Uri uri = Uri.fromFile(new File(getContext().getExternalFilesDir(""), "image.png"));
File imagePath = new File(getFilesDir(), "images");
File newFile = new File(imagePath, "image.png");
Uri uri = getUriForFile(this, "packagename", newFile);
File file = new File(contentUri.getPath());
if (file.exists()) {
//Do something
Log.d("TAG","Exist");
}
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
sendIntent.setType("image/png");
sendIntent.putExtra("sms_body", getString(R.string.sms_body, HostName));
if (defaultSmsPackageName != …Run Code Online (Sandbox Code Playgroud) 我放下手机,看起来我的接近传感器不再可靠.它一直返回近处.问题是,在通话期间显示屏关闭,我将无法使用数字键盘输入别针或会议另一个电话,甚至断开呼叫.我在辅助功能设置中找到了电源按钮断开连接选项并立即使用它.
我试图创建一个应用程序,试图在收到一个电话时获得一个完整的唤醒锁,希望它能保持显示.
创建一个广播接收器,当电话状态变为OFFHOOK时调用服务
该服务获得一个完整的唤醒锁,只有当手机状态为IDLE时才会释放它.
但是,接近传感器会关闭显示屏.我使用isHeld()方法来确保获取锁.我使用了PowerManager的isScreenOn()方法,即使在通话期间屏幕关闭时它也返回true.我试图在一个循环中每两秒获取一次唤醒锁进行测试,但显示器仍然不会出现.
我正在使用Nexus 5 Android版本4.4.4
任何人都可以建议超越接近传感器的行为吗?根要求的选项也没关系.
谢谢!
android telephony telephonymanager proximitysensor android-dialer
我希望在我点击API调用时得到设备的信号强度.我搜索了所有相关的主题,但我还没有成功.
所以我想获得信号强度
SignalStrength ss = null ; // some initialization
int n = ss.getGsmSignalStrength();
Run Code Online (Sandbox Code Playgroud)
但是在使用它的时候,很明显我会得到空指针异常,因为我初始化SignalStrength为null.但我不知道如何初步化.
此外,我不想使用,PhoneStateListener因为只有在信号发生变化时才会触发它.
我使用下面的代码获得信号强度
TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
CellInfoGsm cellinfogsm = (CellInfoGsm)telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthGsm cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength();
cellSignalStrengthGsm.getDbm();
Run Code Online (Sandbox Code Playgroud)
但我不想使用,CellSignalStrength因为它只在API级别17中添加,并且不会在17下工作.我希望代码能够在API Level 7+上运行.
或者是否有其他方法,以便我可以在达到API调用时获得信号强度?
这是SO中一个熟悉的问题.我需要的是以编程方式结束通话.我经常搜索过......
http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html http://androiddesk.wordpress.com/2012/08/02/blocking-a-call-without-user-intervention -in-的Android /
http://www.emoticode.net/android-sdk/block-incoming-and-outgoing-phone-calls-programmatically.html
如何在Android应用程序开发中阻止手机号码呼叫和消息接收?
和http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html
还有更多问题,答案和建议......
所有人都说ITelephonyService.aidl与TelephonyManager结合使用
并且该解决方案在许多设备上都运行良好,但它不适用于Samsung S Duos.我挣扎了一个星期,但没有得到解决方案..是否有任何特殊的API可以在这种类型的设备上工作?我如何拒绝来电?请帮我...
telephony ×10
android ×8
exception ×1
ios ×1
iphone ×1
ivr ×1
mms ×1
objective-c ×1
permissions ×1
phone-call ×1
regex ×1