标签: telephonymanager

以编程方式获取Android手机的电话号码

如何以编程方式获取运行我的Android应用程序的设备的电话号码?

android phone-number telephonymanager

431
推荐指数
10
解决办法
40万
查看次数

使用Android获取电话美国本地区号

我想知道如何从我的Android应用程序中获取设备/用户区域代码我知道有一个名为TelephonyManager的lib但我找不到国家/地区代码功能

为了使自己清楚:我有一个活动,要求用户输入他的电话号码,我想从设备(从他的运营商?)获取区号?如果我打开我的应用程序在纽约我会得到+212作为代码和文本框输入我自己的号码

android telephonymanager

51
推荐指数
6
解决办法
7万
查看次数

如何检查Android卡中是否有Sim卡?

我需要帮助检查设备是否以编程方式使用SIM卡.请提供示例代码.

android telephonymanager

48
推荐指数
2
解决办法
4万
查看次数

如何在Android中挂断电话?

我正在开发一个应用程序,其中我们需要的一件事是控制传出呼叫,至少能够从我们的应用程序中阻止它.

我尝试过使用Intent.ACTION_CALL现有的活动:

Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)); 
startActivity(callIntent); 
Run Code Online (Sandbox Code Playgroud)

但是通过API似乎不允许停止呼叫.

你能建议一些解决方法吗?

例如:在通话期间启用飞机模式?只是一个例子; 这个黑客对我不起作用.

android telephony telephonymanager

45
推荐指数
6
解决办法
4万
查看次数

在Android中检索来电的电话号码

我想检索来电的电话号码,并像http://blog.whitepages.com/2009/02/27/caller-id-by-whitepages-a-new-android-app-中的那样做.即,看跌期权-电话销售上的警报/

能不能请你帮忙,因为我找不到任何关于此的信息.我从哪里开始,如何掌握电话号码?


好的,目前我的代码如下所示.当我拨打电话时,CustomBroadcastReceiver捕获它并打印出日志消息.我可以从捆绑中检索电话号码.但!我不能让他的CustomPhoneStateListener工作.正如您所看到的,我已将customPhoneState侦听器注册到接收器,但日志消息永远不会从CustomPhoneStateListener类中打印出来.我在这里失踪了什么?我的想法是否正确?


<receiver android:name=".CustomBroadcastReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" /> 
        </intent-filter>
</receiver>

</application>
<uses-sdk android:minSdkVersion="5" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Run Code Online (Sandbox Code Playgroud)
public class CustomPhoneStateListener extends PhoneStateListener {

private static final String TAG = "CustomPhoneStateListener";

public void onCallStateChange(int state, String incomingNumber){

    Log.v(TAG, "WE ARE INSIDE!!!!!!!!!!!");
    Log.v(TAG, incomingNumber);

    switch(state){
        case TelephonyManager.CALL_STATE_RINGING:
            Log.d(TAG, "RINGING");
            break;
    }   
}
Run Code Online (Sandbox Code Playgroud)
public class CustomBroadcastReceiver extends BroadcastReceiver {

private static final String TAG = "CustomBroadcastReceiver";

@Override
public void onReceive(Context context, Intent intent) …
Run Code Online (Sandbox Code Playgroud)

android telephonymanager phone-state-listener

44
推荐指数
2
解决办法
7万
查看次数

如何在Android中获取当前的SIM卡号码?

我想知道Android中的用户手机号码.我使用了这段代码,但我没有得到数字.

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
        String n = tm.getLine1Number();
Run Code Online (Sandbox Code Playgroud)

允许:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Run Code Online (Sandbox Code Playgroud)

是否必须在android手机中保存号码 settings --> about phone --> status --> myphone number

有什么想法吗?

android phone-number sim-card telephonymanager

38
推荐指数
4
解决办法
9万
查看次数

如何知道我是否正在使用Android进行通话?

我想知道我是否在打电话.

如果我正在通话,则启动服务(服务部分清除).我该怎么做呢?

在接听电话时我需要拨打电话......我不知道该怎么办?有帮助吗?

java android telephonymanager

30
推荐指数
2
解决办法
3万
查看次数

在通话期间禁用接近传感器

我放下手机,看起来我的接近传感器不再可靠.它一直返回近处.问题是,在通话期间显示屏关闭,我将无法使用数字键盘输入别针或会议另一个电话,甚至断开呼叫.我在辅助功能设置中找到了电源按钮断开连接选项并立即使用它.

我试图创建一个应用程序,试图在收到一个电话时获得一个完整的唤醒锁,希望它能保持显示.

  • 创建一个广播接收器,当电话状态变为OFFHOOK时调用服务

  • 该服务获得一个完整的唤醒锁,只有当手机状态为IDLE时才会释放它.

但是,接近传感器会关闭显示屏.我使用isHeld()方法来确保获取锁.我使用了PowerManager的isScreenOn()方法,即使在通话期间屏幕关闭时它也返回true.我试图在一个循环中每两秒获取一次唤醒锁进行测试,但显示器仍然不会出现.

我正在使用Nexus 5 Android版本4.4.4

任何人都可以建议超越接近传感器的行为吗?根要求的选项也没关系.

谢谢!

android telephony telephonymanager proximitysensor android-dialer

30
推荐指数
5
解决办法
15万
查看次数

为什么ITelephony.aidl有效?

我看到一些SO帖子讨论了如何以程序方式结束电话,例如,这个.是的,人们专注于结果,但没有人真正解释它为什么起作用的原因

我尝试了代码,效果很好.但是我想了解更多关于底下发生的事情的细节?为什么通过创建ITelephony.aidl,ITelephony我们的项目中暴露了android隐藏的内部接口?我们如何创建ITelephony.aidl和自动生成的java(/gen/ITelephony.java)链接到 android的ITelephony界面?是否只是因为名称匹配(包名和援助文件名)?

TelephonyManager tm = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);

Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);

//Why does the android internal ITelephony interface is exposed after created the ITelephony.aidl?
com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm);
telephonyService.endCall(); 
Run Code Online (Sandbox Code Playgroud)

performance android aidl android-intent telephonymanager

28
推荐指数
1
解决办法
1万
查看次数

如何以编程方式获取设备的电话号码

我正在尝试使用以下方法获取电话:

private String getMyPhoneNumber() {
    TelephonyManager mTelephonyMgr;

    mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    //String imsi = mTelephonyMgr.getSubscriberId();
    String phnNo = mTelephonyMgr.getLine1Number();
    if (phnNo == null) {
        phnNo = getNoFromWatsApp();
    }
    return phnNo;
}

private String getNoFromWatsApp(){
    AccountManager am = AccountManager.get(this);
    Account[] accounts = am.getAccounts();
    String phoneNumber = "";

    for (Account ac : accounts) {
        String acname = ac.name;
        String actype = ac.type;
        // Take your time to look at all available accounts
        if(actype.equals("com.whatsapp")) {
            phoneNumber = ac.name;
        }
    }
    return phoneNumber;
}
Run Code Online (Sandbox Code Playgroud)

但每次我得到一个空电话号码.我甚至试图从WhatsApp获得电话号码,但它正在返回"WhatsApp"而不是电话号码.有没有其他方法可以解决这个问题?

android phone-number telephonymanager

26
推荐指数
1
解决办法
5万
查看次数