出于调试原因,我想列出Intent的所有额外内容(及其值).现在,获取密钥不是问题
Set<String> keys = intent.getExtras().keySet();
Run Code Online (Sandbox Code Playgroud)
但获取键的值对我来说是一个,因为一些值是字符串,一些是布尔值...我怎么能在循环中获取值(循环键)并将值写入日志文件?谢谢你的提示!
好.我正在通过我的应用发送短信.发送文本消息后,它会向服务器发送状态更新.这部分工作正常,但我遇到的问题是双重的.我不确定它们是否相关,但我认为它们是相关的.
我的应用程序可以向多个用户发送单个文本.这是代码示例...
if(phoneNumbers.length > 0 && message.getText().toString().equals("") == false)
{
for(int i=0;i<phoneNumbers.length;i++)
{
sms = SmsManager.getDefault();
try
{
sms.sendTextMessage(phoneNumbers[i], null, message.getText().toString(), null, null);
sentQuantity++;
}
catch(IllegalArgumentException e)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,它只是循环遍历一组电话号码,并一次发送一个文本.这是我的问题的一部分.如果我选择3个或更多数字来发送文本,有时并不是所有文本都会被发送.它发生得非常随机.
我认为这是因为发送每条消息之间存在延迟,但代码不会等待足够长的时间.我达到了这个假设,因为如果我使用eclipse进入程序并手动浏览应用程序,一切都可以正常工作.
我的另一个问题是当我将文本消息状态更新发送到Web服务器时.
文本消息发送后,应用程序立即连接到互联网,并通过http发布服务器告知服务器发送的文本数量.这是我的互联网代码片段......
for(int i = 0; i < postNames.length; i++)
{
nameValuePairs.add(new BasicNameValuePair(postNames[i], postValues[i]));
}
//http post
try{
HttpParams httpParameters = new BasicHttpParams();
int timeoutConnection = 10000;
HttpConnectionParams.setConnectionTimeout(httpParameters,timeoutConnection );
HttpClient httpclient = new DefaultHttpClient(httpParameters);
HttpPost httppost = new HttpPost(webAddress);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity …
Run Code Online (Sandbox Code Playgroud) 我对如何判断SMS是否已从设备发送感兴趣.
为了在收到短信时收到通知,我们使用广播公司:
android.provider.Telephony.SMS_RECEIVED
Run Code Online (Sandbox Code Playgroud)
重要的是,我不从我的应用程序发送短信,我应该听取从设备发送短信时.
可能是我应该听一些内容提供商(以某种方式与SMS相关)并对此更改作出反应.有什么想法我能做到吗?
我正在开发一个项目,将Android手机中收到的短信同步到在线数据库.我可以通过调用getOriginatingAddress()
方法获取发件人的号码.但我找不到任何解决方案来确定我的设备中的哪个SIM卡收到了短信.
我在网上搜索了它,但找不到解决这个问题的方法.有没有办法获得短信接收者的号码?
如何发送短信?这看起来很简单,但对我来说不起作用。
我在清单中获得了许可:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.healthapp.healthapp">
<uses-permission android:name="android.permission.SEND_SMS"/>
<application ...
Run Code Online (Sandbox Code Playgroud)
然后我的 onClick 中有这段代码:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("07123456789", null, "Hello there!", null, null);
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "default content");
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个程序时,我得到“不幸的是应用程序已停止”。
以及错误消息:
FATAL EXCEPTION: main
Process: com.healthapp.healthapp, PID: 13477
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) }
Run Code Online (Sandbox Code Playgroud)