我正在为 Android api 29 制作一个呼叫拦截器。为了做到这一点,我有一个扩展 CallScreeningService 的类,如解释here。我的应用程序可以检测来电和去电,但我不知道如何从 Call.Details 中提取电话号码:
@RequiresApi(api = Build.VERSION_CODES.N)
public class CallScreenService extends CallScreeningService {
@RequiresApi(api = Build.VERSION_CODES.Q)
@Override
public void onScreenCall(Call.Details callDetails) {
CallResponse.Builder response = new CallResponse.Builder();
Log.i("CallScreeningService", callDetails.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
日志输出“tel:************”,我怀疑这意味着我没有足够的权限来读取电话号码。在 Main 我请求以下所有权限:
android.Manifest.permission.READ_CONTACTS,
android.Manifest.permission.READ_PHONE_STATE,
android.Manifest.permission.READ_CALL_LOG,
android.Manifest.permission.PROCESS_OUTGOING_CALLS,
android.Manifest.permission.ANSWER_PHONE_CALLS,
Manifest.permission.CALL_PHONE
Run Code Online (Sandbox Code Playgroud)
此外,这是我的 CallScreening 课程的清单:
<service android:name=".phoneHandlers.CallScreenService"
android:permission="android.permission.BIND_SCREENING_SERVICE">
<intent-filter>
<action android:name="android.telecom.CallScreeningService"/>
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)
如何在 Call.Details 中读取电话号码?
我正在使用 EmailJS 成功发送电子邮件,但我无法在电子邮件的内容中添加换行符。
关于 Email.JS 的信息可以在这里找到
这是调用的样子:
emailjs.send("[service]", "[template]", {"send_to": "[email]", "subject": "[subject]", "content": "This is a \nsentence"});
Run Code Online (Sandbox Code Playgroud)
我试过使用%0D%0A, \r\n, \n,<br/>但每封电子邮件都没有换行符。
我正在使用广播接收器制作一个应用程序,我希望我的手机能够处理来自“不可用”的呼叫。我不想等到接到“不可用”的电话才能进行测试。如何在 android studio 模拟器中模拟来自“不可用”的呼叫?