SmsMessage.createFromPdu在android API级别23中已被废弃。
我正在尝试使用以下代码读取接收的SMS,它在API级别下工作,但在API级别23 createFromPdu中,方法已弃用.在Google文档中,它具有public class IncomingSms extends BroadcastReceiver { // Get the object of SmsManager final SmsManager sms = SmsManager.getDefault(); public void onReceive(Context context, Intent intent) { // Retrieves a map of extended data from the intent. final Bundle bundle = intent.getExtras(); try { if (bundle != null) { final Object[] pdusObj = (Object[]) bundle.get("pdus"); for (i
在发送许多信息时,发送短信的 "待定意向 "工作不力
我正在开发一个应用程序,其中我发送SMS,我需要查找该应用程序是否已交付. 如果我向一个人发送消息,每件事似乎都很好. 但是在某些情况下,我收到了错误的信息,例如,首先,我将消息发送给号码0000(但不会交付),并且在它发送后,我将消息发送给Number 0001并传递(消息传递给0000仍然没有已交付),但我得到了一个敬酒:SMS已交付到0000(但仅交付给0001的消息),我该怎么办来解决这一冲突? 这是我的代码: try { SmsManager smsManager = SmsManager.getDefault(); String to = "5556"; String body = "Test Message"; String SENT = "SMS_SENT"; String DELIVERED = "SMS_DELIVERED"; PendingIntent sentPI = PendingInten
2 2024-02-17
编程技术问答社区
安卓-如何使我的应用程序默认的短信应用程序程序化
我正在开发一个SMS阻止应用程序.这对果冻豆很好.而且它不从Kitkat到棉花糖工作.我在Google上进行了搜索,每个人都建议您允许使用用户,以使其默认使用此手机的SMS应用程序. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if(!Telephony.Sms.getDefaultSmsPackage(getApplicationContext()).equals(getApplicationContext().getPackageName())) { Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); intent.putExtra(Telephony.Sms.Intents.EXTRA_PACK
0 2024-02-16
编程技术问答社区
安卓接收短信的意图。获取消息标识或线程标识
我有一个广播听众以接收android.provider.Telephony.SMS_DELIVER意图动作. 我似乎可以获取该新消息的身体和发件人电话号码. 但是,我无法获得此新消息的消息ID或线程ID.我发现的唯一方法是搜索消息和对话表以获取匹配内容.但这似乎有点混乱,我觉得应该有一种更整洁的方式. 旁注: 我错过了一些SMS文档吗?因为很多SMS API似乎都没有记录. 解决方案 SMS中没有消息ID或线程ID.每个SMS都是一个完全独立于所有其他SMS的数据包.在Android中,有一个标准的SMS应用程序,该应用程序将SMS存储在数据库中,并使用某些标准"线程"对话,这些标准在SMS消息本身中不包含.但是,第三方还可以构建以完全不同的方式管理消息的SMS应用程序.这在很大程度上取决于管理SMS的特定应用程序的概念和实现.这也是为什么有关SMS系统的文档不多的原因. Android中可用的API非常低级别且非常基础.其他应用程序以此为基础.
0 2024-02-15
编程技术问答社区
试图识别短信发送确认
我目前正在尝试获取每个发送的SMS的确认.我需要确保发送我的短信,所以我使用a BroadCastReceived获取信息: Intent sentIntent = new Intent(SMS_SEND); sentIntent.putExtra("key", idSms); PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT); SmsManager manager = SmsManager.getDefault(); try{ manager.sendTextMessage(exp, null, sms, sentPI, null); put("sending " + sms); //Just a method to
0 2024-02-15
编程技术问答社区
在安卓KitKat上终止短信意向
我目前正在开发仅当应用程序期望的SMS(与注册中的WhatsApp相同的行为)时,才需要处理SMS. 我想中止SMS意图,因为它不会出现在SMS框中. 我的问题是:我知道Google在Kitkat中的SMS行为发生了很大的变化,现在,即使我的SMS通过我的应用程序很好地解析了SMS,SMS也会出现在SMSBox中,即使我在我的中打了this.abortBroadcast(); SMS广播接收器.因此,有没有办法避免出现在SMS框中而不必开发完整的SMS应用程序中的SMS? 有关信息,此广播接收器的清单文件中的优先级为1000(我也使用Max Integer尝试). 解决方案 群聊使用最大可能的优先级(999 per 意图过滤器文档)因此,您不能在默认SMS App (博客文章,带有详细信息)更改SMS提供商(即自动删除SMS). 其他解决方案 您无法阻止消息在Kitkat中的默认SMS应用程序中显示.结帐以下链接以获取详细信息: https://c
0 2024-02-13
编程技术问答社区
安卓系统中删除已发送的短信
在Android Kitkat之前,可以使用此方法在设备上已安装的消息应用程序的发送文件夹中发送SMS消息,而使用此方法: SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phonenumber, null, message, null, null); 但是如何完成kitkat?您是否必须删除应用程序发送的消息?如果是这样,它如何正确完成? 解决方案 从Kitkat开始,任何具有SEND_SMS权限的应用程序都可以通过标准SmsManager方法发送消息,并且系统将自动处理将消息写入提供商.由于默认应用程序是唯一具有对提供商的写入访问权限的应用程序,因此它是唯一可以删除消息的应用程序,因此任何非默认应用程序都无法自动删除这些消息.*如果您不希望将它们编写,则应将您的应用程序设置为默认的SMS应用程序.默认应用程序负责编写自己的发出消息,并且可以选择不这样做. *可以在中找到Android
4 2024-02-12
编程技术问答社区
有什么办法可以让我清除SMS_SENT或SMS_DELIVERED的广播,以便其他应用程序不会得到它?
我正在寻找一种潜在的应用程序,我无法在Oppo,Mi. 从我的设备发送一条消息,我注册一个接收器来聆听消息的状态,已发送和交付,此后,我将进行一些网络调用. 当前,我的应用程序无法获得OnReceive().为什么?因为每当我的onReceive()被调用并发送到服务器时,我会将值添加到一个数组中.我为Oppo,Vivo,Mi. 我如何跟踪此问题或至少重现它? 是否有一个应用程序或任何可以删除或取消广播并阻止到达我的手机的设置? 解决方案 您可以确认吗,因此它没有调用Onceeive或意图数据参数正在返回OnReceive方法的null?您可以尝试以下内容吗? 发送短信,直到成功
0 2024-02-12
编程技术问答社区
SmsManager,在短信中发送附件
当我尝试发送TRO时,如何在SMSManager对象中添加"附件"? 我当前发送普通SMS的功能是: public void send() { SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(this.number, null, this.message, null, null); } 我看过Senddatamessage(),但不太了解. 谢谢. 编辑 我不想为此使用意图.我有一个列表,其中包含我想通过SMS/MMS发送的位图图像.因此,我不想在我的应用程序中调用SMS应用程序.我想根据列表中的内容"动态"发送附件. 解决方案 我的一个朋友刚刚向我张贴了这个链接到图书馆的链接: https://github.com/klinker41/android-smsmms Message mMessage = new Message(textToSend,
0 2024-02-12
编程技术问答社区
某些手机无法通过smsManager发送邮件
我正在发送Smsmanager的消息.但是在某些三星手机中,它无法发送,也没有显示错误. 这是我的代码 try { SmsManager sms = SmsManager.getDefault(); Toast.makeText(context, "" + phoneNumber + ": " + messageText, Toast.LENGTH_SHORT).show(); PendingIntent sentPI = PendingIntent.getBroadcast(getActivity(), 0, new Intent("SMS_SENT"), 0); PendingIntent deliveredPI = PendingIntent.getBroadcast(getActivity(), 0, new Intent("SMS_DELIVERED"), 0); sms.sendTextMessage(phoneNumb
0 2024-02-11
编程技术问答社区
这需要android.permission.INTERACT_ACROSS_USERS_FULL。
这个问题有关的问题 发送并接收SMS以验证手机号码 我已解锁三星AT&T设备.我正在尝试通过代码发送消息.但是我的代码无法正常工作,因此我将设备与USB连接在一起,并跟踪问题是什么.我发现我得到了这个例外 981/? E/DatabaseUtils﹕ Writing exception to parcel java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.j
2 2024-02-11
编程技术问答社区
在安卓系统中以编程方式发送短信
我使用以下代码一次在多个人(联系人)的背景中发送SMS. 它适用于较小的文本,但是它不适用于具有超过160个字符的文本.我正在普通失败. public class SendSMS { private int mMessageSentParts; private int mMessageSentTotalParts; private int mMessageSentCount; private String message; private String[] array; private Context mContext; public SendSMS(Context context,String array[]) { // TODO Auto-generated constructor stub this.mContext = context; this.array = ar
0 2024-02-11
编程技术问答社区
如何永远转发短信?
以下示例代码来自Interent,我不知道如何启动或停止监视器. 我想在我安装.APK后,它将始终是监控和转发SMS. 我希望我可以控制启动或停止监视器.我能怎么做?谢谢! 等等,我希望在我在Android手机上电源时自动启动监视器,该怎么办?需要我使用本地服务器函数吗?
2 2024-02-10
编程技术问答社区
如何记录所有发送的短信和包裹名称?
我正在尝试开发一个应用程序,该应用程序与触发该事件的应用程序的UID或软件包名称一起登录所有SMS.我是为了研究目的而这样做的. 我希望记录发送该短信的应用程序名称. 对不起,我的英语很恶心. 解决方案 经过一系列研究,我发现触发SMS的应用程序名称被明确存储在SMS DB的创建者字段(索引19)中.
0 2024-02-10
编程技术问答社区
监控信息发送状态由Intent= new Intent(Intent.ACTION_SEND)发起。
我正在寻找一种通过Intent.ACTION_SEND启动的MMS消息的发送状态的方法,以便在发送消息后可以返回我的原始活动.当前我正在使用startActivityForResult()和一个请求代码来启动它,以便有一些可以返回并显示敬酒的东西,我也使用Intent.putExtra("exit_on_sent", true),以便将默认的使者退出并在发送按钮为时返回到原始活动按下,但这只会给人以这样的幻想,即它发送了消息,并且实际上没有监视并等待它发送.我发现了监视使用smsManager,待处理意图和广播接收器的SMS消息的示例,但是作为菜鸟,我不确定是否应该使用这种方法.任何指导都将不胜感激. 解决方案 我正在寻找一种通过Intent.Action_Send启动的MMS消息的发送状态的方法,以便我可以在发送消息时返回我的原始活动. 这是不可能的.首先,您无法控制用户选择处理ACTION_SEND的活动.其次,这将取决于其他活动的作者如何实施"发送"操作,以及他们
0 2024-02-09
编程技术问答社区
如何通过短信发送谷歌地图的位置
如何在SMSManager的文本字符串中分配变量LocationManager? 我想以坐标作为短信发送SMS. 私人位置管理人LM; 私有位置列表LocationListener; lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationListener = new MyLocationListener(); lm.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, locationListener); lm.requestLocationUpdates( LocationManager
2 2024-02-09
编程技术问答社区
SmsManager的空指针异常
我试图使用BroadCast Receiver> BroadCast Receiver的 smsmanager 发送短信.我不知道这是怎么回事.我讨厌这个错误. 这是我的代码段 GPSTracker tracker = new GPSTracker(context); MyLocation temp = tracker.getCurrentLocation(); String message = sp.getString("auto_text", "") + "\n" + "Latitude: "+temp.getLatitude() + "\nLogitude: "+temp.getLongitude(); Toast.makeText(context, message, Toast.LENGTH_LONG).show(); smsManager
0 2024-02-07
编程技术问答社区
发送SMS的数量数量是否有限制?
在我的应用程序中,我想将质量短信发送到一堆数字,我想知道SMS的收件人列表是否存在时间阈值或尺寸限制. 我在以前的问题中看到的只是代码不再存在于当前的Android构建中,例如对SMSDISPATCHER的引用和当前代码中不再存在的设置常数. . 解决方案 通过我的应用程序支持的所有API浏览了以下代码 private void setSmsDefaultLimitations(){ int apiLevel = Build.VERSION.SDK_INT; String versionRelease = Build.VERSION.RELEASE; switch(apiLevel){ case 9: case 10: case 11: case 12: case 13: case 14: case 15: sMaxAllowed = 100; sCh
0 2024-02-07
编程技术问答社区
将收到的信息写给短信供应商(API级别19+)。
我正在为Kitkat和更高版本创建SMS经理.我已经按照官方 Android . 我必须接收SMS SMS_DELIVER广播接收器并阅读它,然后必须写给SMS提供商. 到现在为止,我能够阅读收到的SMS.我将应用程序设置为设备中的默认SMS应用程序.我也正在解析SMS,并且可以在日志中看到它. 问题 我无法将SMS写给SMS提供商. 这是广播接收器: public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); if (bundle != null) { Object[] pdusObj = (Object[]) bundle.get("pdus"); S
0 2024-02-07
编程技术问答社区