我们运行远程系统,希望服务器能够通过短信提醒我们他们的状态.是否可以设置我们自己的SMS网关(或我们自己的GSM网络),所以我们不必支付短信服务提供商的费用?
这可能吗?如果是这样,请告诉我们所需的硬件是什么以及我们如何开始...
我确信这是可能的,因为当运营商A想要向运营商B发送短信时,它不会向运营商B支付任何费用.此外,还有大量的在线服务,如:Atompark.com,clickatell, ...等等
请注意:我们知道如何使用Linux系统,调制解调器GSM和有效的SIM建立短信网关,但我们正在寻找一种方式,我们不必支付任何分钱发送短信息...
我刚刚收到了Hangouts 2.0的更新,已安装并启用了SMS→ Turn on SMS.现在我的应用程序在Android 4.3下运行,无法再接收短信,即我的BroadcastReceiver for SMS_RECEIVED不再被调用.:-(
只要我Turn on SMS在环聊2.0中禁用,我的应用就可以再次接收SMS_RECEIVED意图.
广播接收器在此类清单中注册
AndroidManifest.xml中
…
<receiver android:name=".SMSReceiver" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
…
Run Code Online (Sandbox Code Playgroud)
SMSReceiver.java
public class SMSReceiver extends BroadcastReceiver {
private static final Log LOG = Log.getLog();
@Override
public void onReceive(Context context, Intent intent) {
LOG.d("onReceive");
…
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试将接收器的优先级更改为INT_MAX或999,这是intent-filter文档中可能的最高优先级,但没有成功.我知道SMS_RECEIVED意图是有序发送的,高优先级的应用程序有能力中止广播.1但是,Hangouts 2.0似乎不太可能SMS_RECEIVED以高优先级注册接收器并调用abortBroadcast(),因此阻止任何其他应用程序接收意图.
更令我困惑的是,即使将Hangouts 2.0作为默认短信应用,我的Pebble仍然可以接收短信.我想知道Pebble的不同之处是什么?我刚刚注意到,我的Pebble上的传入短信通知不再是Pebble应用程序收到的新短信通知,而是由收到传入短信的环聊引起的"新环聊消息"通知.所以Pebble应用程序也无法接收传入的短信SMS_RECEIVED.
在旁注而且与此问题没有真正关联,因为我仍然在Android 4.3(但我的应用程序针对SDK级别19,Android 4.4以防万一)Google的Android开发者博客文章关于Kitkat中 …
我创建了一个BroadcastReceiver并使用android.provider.Telephony.SMS_RECEIVED动作过滤器对其进行配置,以便每次手机接收到文本时都会调用它.
是否有一些事件/操作或其他方式可以在手机发送文本时通知我的应用程序(最好是独立于发送它的应用程序)?
到目前为止,我看到的唯一选择是轮询内容提供商content://sms/sent甚至没有给我所有发送的文本,因为应用程序可以选择不将它放在那里.
我一直在尝试从PHP脚本发送的SMS消息中生成一个新行.我用过\r\n,<BR>还有一些十六进制代码.无论我做什么,消息都会在没有换行的情况下传到手机上.
$body .= 'City:'.$venue.'\r\n'; //<- doesn't work
$body .= 'State:'.$state.'<br>'; //<- doesn't work
Run Code Online (Sandbox Code Playgroud)
这是我的标题类型...(不包括完整标题)
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
Run Code Online (Sandbox Code Playgroud)
我用邮件发送...
mail($somenumber,$subject,$body,$headers)
Run Code Online (Sandbox Code Playgroud)
在收到消息的意义上,一切正常.我希望我错过了一些东西,因为这让我发疯了.
我有一个应用程序,它必须侦听特定的SMS.到目前为止容易.
但是当我收到消息时,它是多部分的.是否有正确的方式接收短信作为一条消息?
现在我的活动开始两次,对于短信的每一部分.我应该手动连接短信吗?
我想知道Android是否有与iPhone相似的功能,你可以使用HTML A标签发送短信,方法是将HREF属性设置为你想要发送短信的电话号码,并在其前面添加"短信:" ,即href="SMS:02313213"
我已经环顾四周,似乎找不到任何暗示它可以在Android上使用的东西.
我想通过手机阅读所有信息及其各自的详细信息.为此,我使用这样的Uri:
Uri sms = Uri.parse("content://sms/");
Run Code Online (Sandbox Code Playgroud)
但我不知道数据库中有多少列与此uri相关联.
我想显示以下信息:
任何人都可以列举总列名吗?
我使用短信管理器发送短信.对于单一SIM卡,它可以完美地发送短信.但在双卡双待短信不会发送.是否可以从双卡发送短信,如果可能的话,我该如何选择哪个SIM卡发送短信.任何人都知道帮我解决这个问题.
单SIM卡工作代码
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(ph_number, null, body, null,null);
Run Code Online (Sandbox Code Playgroud) 该文件建议使用该消息属性,但我似乎无法找出什么属性名称使用.
这项工作到目前为止:
sns = boto3.client('sns', region_name='eu-west-1')
sns.publish(
PhoneNumber='+491701234567',
Message='hi there',
MessageAttributes={
'AWS.SNS.SMS.SenderID': {
'DataType': 'String',
'StringValue': 'MySenderID'
}
}
)
Run Code Online (Sandbox Code Playgroud)
SMS已发送,但发件人ID字段中包含一些(随机?)值.所以我的消息属性设置似乎被忽略了.设置自定义发件人ID的正确方法是什么?
我最近下载了一个关于SMS发送的项目,但是当我尝试编译代码时,它会在线提供错误import javax.comm.*;.
任何人都可以告诉我在哪里找到javax.comm以及放置在哪里,这样就不会出现编译错误.
sms ×10
android ×6
amazon-sns ×1
boto3 ×1
gateway ×1
hangout ×1
java ×1
javax.comm ×1
messages ×1
php ×1
python ×1
smsmanager ×1