标签: telecommunication

使用android.telecom和InCallService接听来电

从API 21开始,Google一直在为android.telecom添加功能,特别是通过实现更多的TelecomManager成员和添加InCallService.最后一个应该允许非系统的第三方应用程序提供和替换系统Calls app in-call屏幕的功能 - 弹出的窗口允许操作EXTRA_STATE_OFFHOOKEXTRA_STATE_RINGING广播(即传入和传出的电话呼叫) ).

目前,只有这个屏幕可以完全控制振铃和活动呼叫以及具有细粒度信息的相关系统回调,通过根限制MODIFY_PHONE_STATE权限和许多安全的AOSP代码甚至无法通过反射访问.它特别是不同制造商的ROM风格中最变化的代码之一,以及发射器,触点和相机.

这一切都非常漂亮,但......

你如何实际开发第三方InCallService?

即:

  1. 如何获得有关GSM呼叫的通知和获取GSM呼叫的实例
  2. 如何回答这些电话
  3. 这个类的回调的生命周期是什么
  4. Google是否提供了我尚未找到的任何实际教程

我不会立刻问所有这些问题的答案,但任何一个答案都可能与其他问题有关.这是广泛的,但本质上它需要是:在网络上没有任何例子我偶然发现了AOSP代码,而且该代码基于root权限的假设,这使得它无法用于第三方应用程序开发目的.

android gsm telecommunication

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

Android:为电信注册新的PhoneAccount

我正在尝试创建一个新的PhoneAccount来使用我的ConnectionService实现.在文档中,它说我需要在TelecomManager中注册一个新的PhoneAccount,然后在我的手机应用程序的设置中选择它.

这是我的代码:

TelecomManager telecomManager = (TelecomManager) getSystemService(Context.TELECOM_SERVICE);

ComponentName componentName = newComponentName("se.example.connectionservicestandalonetest", "se.example.connectionservicestandalonetest.MyConnectionService");
PhoneAccountHandle phoneAccountHandle = new PhoneAccountHandle(componentName, "Admin");
PhoneAccount phoneAccount = PhoneAccount.builder(phoneAccountHandle, "Admin").build();

telecomManager.registerPhoneAccount(phoneAccount);
Run Code Online (Sandbox Code Playgroud)

如您所见,它创建了一个新的ComponentName,指向我的ConnectionService实现,然后创建一个新的PhoneAccountHandle,我提供ComponentName和一个唯一的帐户名.然后我在PhoneAccount构建中提供PhoneAccountHandle,以及标签(名称?),以创建新的PhoneAccount.最后,我在telecomManager中注册了该帐户.

当我打开手机应用程序时,没有任何改变.我看不到我可以改变PhoneAccount的地方......有什么想法吗?

谢谢!

android telecommunication android-6.0-marshmallow android-7.0-nougat

11
推荐指数
2
解决办法
4075
查看次数

按周期序列号对项目进行排序

我正在开发一种算法来重新排序传输中的数据包.每个数据包在[0,256]中都有一个相关的序列号.第一个数据包的序列号可以取这些值中的任何一个,之后下一个数据包采用下一个值,下一个数据包采用该值之后的值,依此类推(在255之后滚动).

数据包的序列号按正确顺序显示如下,其中"n"是第一个数据包的序列号:

n,n + 1,n + 2,...,254,255,0,1,2,...,254,255,0,1,2,...,254,255,0,1, ...

每个数据包在到达目的地时都会得到一个时间戳,它们都大致按顺序到达.(我没有确切的数字,但是根据到达时间戳排序的数据包列表,可以肯定地说,数据包永远不会超过其序列号所指示的列表中的位置五个点.)

鉴于电信的普及及其对计算机科学发展的历史重要性,我觉得我不可能成为第一个处理这类问题的人.那么我的问题是:

  1. 在给定循环变化的密钥的情况下,是否存在一种众所周知的算法来重新排序近似有序的序列,例如上述序列?

  2. 这个算法的变体是否能够容忍大块缺失的物品?让我们假设这些块可以是任何长度.我特别担心256个或更多遗失物品的大块.

我对第一个算法有一些想法,但对第二个没有.然而,在我投入工时来验证我的算法是否正确之前,我想确保贝尔实验室(或其他任何地方)的某个人在三十年前还没有完成这项工作.

language-agnostic sorting algorithm telecommunication

8
推荐指数
1
解决办法
1271
查看次数

电信中Erlang的使用

我是一名网络开发人员和一名电信专业的大学生.这意味着我在编程方面很不错,而且我对电信网络有一点了解(在很高的非技术层面).

我一直在读,Erlang被用于整个电信行业(据称其性能).

我想知道无论如何我可以将我的编程技巧与我的电信专业与Erlang结合起来.大部分二郎/电信的东西是封闭源吗?有没有写过Erlang的开源电信项目?

更新:sipwiz的评论让我想到一个比"使用Erlang"更大的问题.如何通过编程利用对电信网络和电信监管环境的高层次理解.我希望这对于SO来说并没有过于偏离主题.

erlang telecommunication

7
推荐指数
1
解决办法
3856
查看次数

最小均方来均衡光纤通道

我使用LMS的Matlab代码(最小均方算法)来均衡通道的效果,它适用于在MATLAB中生成的抽头延迟通道,但对于使用光谱系统程序的光纤通道,它不能正常工作,我认为问题在于光纤脉冲响应,因为它不是有限脉冲响应而且算法需要有限的脉冲响应但是如何解决这个问题呢?

在MATLAB通道和光纤通道的星座中,很明显第二个星座没有得到很好的均衡.

星座:

在此输入图像描述

以下是LMS算法无法补偿其影响的噪声通道的示例,有没有办法在此SNR上增强其性能:

% // Set up parameters and signals.

M = 4; % // Alphabet size for modulation

msg = randint(15000,1,M); % // Random message


modmsg = pskmod(msg,M); % // Modulate using QPSK.


trainlen = 5000; % // Length of training sequence


chan = [.986; .845; .237; .123+.31i]; % // Channel coefficients


filtmsg = filter(chan,1,modmsg); % // Introduce channel distortion.

filtmsg=awgn(filtmsg,10,'measured');

% // Equalize the received signal.

eq1 = lineareq(8, lms(0.01)); % // Create an equalizer object.

eq1.SigConst …
Run Code Online (Sandbox Code Playgroud)

matlab telecommunication fiber least-squares modulation

7
推荐指数
1
解决办法
435
查看次数

如何从IMEI中检索TAC?

问题很简单.我有IMEI,我想从中检索TAC.我该怎么做?如果我只有一个IMEI,有没有办法识别TAC应该有多少位?是否有必要明确知道设备的生产年份才能知道它?

mobile mobile-phones telecommunication imei

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

添加 APN 时运营商应用抛出 SecurityException

我们有一个具有运营商特权的 eUICC,我们可以通过以下方式检查特权

telephonyManager.hasCarrierPrivileges()它返回true

Android 文档说我们可以使用 Content Provider API 来添加、修改 APN。

但我们仍然无法添加 APN。堆栈跟踪

java.lang.SecurityException: No permission to access APN settings
        at com.android.providers.telephony.TelephonyProvider.checkPermission(TelephonyProvider.java:7029)
        at com.android.providers.telephony.TelephonyProvider.insertSingleRow(TelephonyProvider.java:5948) ```
Run Code Online (Sandbox Code Playgroud)

privileges android telecommunication apn euiccmanager

6
推荐指数
0
解决办法
337
查看次数

错误检测效率(CRC,校验和等)

我有一个发送数据单元的假设情况,每个数据单元都有一千个字节.故障率很少,但是当发生错误时,它不太可能是单个位错误,并且更可能是连续几位中的错误.

起初我想过使用校验和,但显然可能会错过大于一位的位错误.奇偶校验也不起作用,因此CRC可能是最佳选择.

使用循环冗余校验是否有效千字节?或者还有其他方法可以更好地运作吗?

checksum data-link-layer crc error-detection telecommunication

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

GSM网络中的小区(小区id),BTS和BSS

  1. BTS和细胞之间有什么关系?我认为一个BTS硬件可以覆盖很少的单元,也有一些单元可以覆盖多个BTS不是吗?

  2. 移动电话从具体BTS或手机的GSM网络识别接收的信息是否只知道cell-id?

  3. 是移动从BSC的GSM网络识别接收的信息的一部分吗?

gsm mobile-phones telecommunication cellid

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

电信软件硬多线程问题的设计模式

Martin Fowler的书 "企业应用程序架构模式"中,他在第2页写道:"在某些方面,企业应用程序比电信软件容易得多 - 我们没有非常难的多线程问题......".

是否有人知道这些"非常难以解决的多线程问题"和解决方案的摘要,以设计模式的形式,如着名的GoF 设计模式书?

POSA书.但这些书可能过于笼统和根本.更多以域名为中心的例子就是这个问题.

architecture multithreading design-patterns software-design telecommunication

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