- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 smsfunction 发送短信,我想从我的号码中获取联系人列表,如果我单击 phoneno 的编辑文本,它必须打开我手机的联系人列表,并且无论我选择什么,它都必须获取联系人号码,并且它必须发送。
现在在模拟器中,它显示“短信失败,请稍后再试!”如果我在设备中使用它,单击任何联系人后,它会显示“我的应用程序已停止”
发送短信 Activity .java
public class SendSMSActivity extends Activity {
public static final int RQS_PICKCONTACT = 1;
Button buttonSend;
//EditText textPhoneNo;
EditText phoneNo;
EditText textSMS;
int columnIndex_number;
static String stringNumber;
String sms;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about);
buttonSend = (Button) findViewById(R.id.buttonSend);
textSMS = (EditText) findViewById(R.id.editTextSMS);
/*textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
textPhoneNo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
//Uri uri = Uri.parse("smsto:" + textPhoneNo);
//Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
}
});*/
phoneNo = (EditText)findViewById(R.id.phoneNo);
phoneNo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final Uri uriContact = ContactsContract.Contacts.CONTENT_URI;
Intent intentPickContact = new Intent(Intent.ACTION_PICK, uriContact);
startActivityForResult(intentPickContact, RQS_PICKCONTACT);
}
});
/*Bundle extras = getIntent().getExtras();
if(extras !=null) {
String sms = extras.getString("firstKeyName");
}*/
Intent intent1= getIntent(); // gets the previously created intent
final String firstKeyName = intent1.getStringExtra("firstKeyName");
textSMS.setText(firstKeyName);
buttonSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//String phoneNo = textPhoneNo.getText().toString();
try {
SmsManager smsManager = SmsManager.getDefault();
//String name = null;
smsManager.sendTextMessage(stringNumber, null, firstKeyName, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent!",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"SMS faild, please try again later!",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
finish();
}
});
}
/*@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
//Uri uri = Uri.parse("smsto:" + textPhoneNo);
//Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
final String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
textPhoneNo.setText(name);
}
}
break;
}
}*/
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
if(resultCode == RESULT_OK)
{
if(requestCode == RQS_PICKCONTACT)
{
Uri returnUri = data.getData();
Cursor cursor = getContentResolver().query(returnUri, null, null, null, null);
if(cursor.moveToNext()){
int columnIndex_ID = cursor.getColumnIndex(ContactsContract.Contacts._ID);
String contactID = cursor.getString(columnIndex_ID);
int columnIndex_HASPHONENUMBER = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
final String stringHasPhoneNumber = cursor.getString(columnIndex_HASPHONENUMBER);
if(stringHasPhoneNumber.equalsIgnoreCase("1")){
Cursor cursorNum = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactID,null,null);
//Get the first phone number
if(cursorNum.moveToNext())
{
columnIndex_number = cursorNum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
final String stringNumber = cursorNum.getString(columnIndex_number);
phoneNo.setText(stringNumber);
}
}else{
phoneNo.setText("NO Phone Number");
}
}else{
Toast.makeText(getApplicationContext(), "NO data!", Toast.LENGTH_LONG).show();
}
}
}
}
}
它没有从我的手机中获取联系人,我的代码中是否有任何错误。
Logcat error
06-07 10:32:03.543: E/AndroidRuntime(1015): FATAL EXCEPTION: main
06-07 10:32:03.543: E/AndroidRuntime(1015): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=content://contacts }
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.app.Activity.startActivityForResult(Activity.java:3370)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.app.Activity.startActivityForResult(Activity.java:3331)
06-07 10:32:03.543: E/AndroidRuntime(1015): at com.example.jsonandroid.SendSMSActivity$1.onClick(SendSMSActivity.java:41)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.view.View.performClick(View.java:4202)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.view.View$PerformClick.run(View.java:17340)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.os.Handler.handleCallback(Handler.java:725)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.os.Handler.dispatchMessage(Handler.java:92)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.os.Looper.loop(Looper.java:137)
06-07 10:32:03.543: E/AndroidRuntime(1015): at android.app.ActivityThread.main(ActivityThread.java:5039)
06-07 10:32:03.543: E/AndroidRuntime(1015): at java.lang.reflect.Method.invokeNative(Native Method)
06-07 10:32:03.543: E/AndroidRuntime(1015): at java.lang.reflect.Method.invoke(Method.java:511)
06-07 10:32:03.543: E/AndroidRuntime(1015): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-07 10:32:03.543: E/AndroidRuntime(1015): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-07 10:32:03.543: E/AndroidRuntime(1015): at dalvik.system.NativeStart.main(Native Method)
最佳答案
您可以引用以下内容并进行修改。我在我的手机上测试了它。请发布崩溃的 logcat 详细信息,我们只能猜测错误。
您在单击按钮内调用 finish(),这将完成 Activity 。不确定您要做什么。
主 Activity .java
public class SendSmsActivity extends Activity {
Button buttonSend,get;
private static final int CONTACT_PICKER_RESULT = 1001;
EditText phoneNo;
EditText textSMS;
int columnIndex_number;
static String stringNumber;
String sms;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.send);
phoneNo = (EditText)findViewById(R.id.editText1);
textSMS = (EditText) findViewById(R.id.editText2);
get = (Button) findViewById(R.id.button1);
get.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}
});
buttonSend = (Button) findViewById(R.id.button2);
buttonSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v){
try {
String sms = textSMS.getText().toString().trim();
Toast.makeText(getApplicationContext(), phoneNo.getText().toString()+sms,
Toast.LENGTH_LONG).show();
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo.getText().toString(), null, sms, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent!",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"SMS faild, please try again later!",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER_RESULT:
Cursor cursor = null;
String phoneNumber = "";
List<String> allNumbers = new ArrayList<String>();
int phoneIdx = 0;
try {
Uri result = data.getData();
String id = result.getLastPathSegment();
cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
phoneIdx = cursor.getColumnIndex(Phone.DATA);
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() == false) {
phoneNumber = cursor.getString(phoneIdx);
allNumbers.add(phoneNumber);
phoneNo.setText(cursor.getString(phoneIdx));
cursor.moveToNext();
}
} else {
//no results actions
}
} catch (Exception e) {
//error actions
} finally {
if (cursor != null) {
cursor.close();
}
}
break;
}
} else {
//activity result error actions
}
}
}
发送.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="35dp"
android:layout_toRightOf="@+id/button1"
android:text="Phone No"
android:textSize="25sp" />
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="78dp"
android:padding="20dp"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="SMS Content"
android:textSize="25sp" />
<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:padding="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingTop="20dp"
>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="34dp"
android:text="Get" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:paddingLeft="20dp"
android:text="Send" />
</LinearLayout>
</LinearLayout>
在 list 中添加权限
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.SEND_SMS" />
来自模拟器的快照。如果您需要发送短信,则必须使用真实设备
如果数字之间有空格,你可以修剪空格
关于java - 不获取联系人点击联系人它显示应用程序已停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16979768/
我正在使用 Tkinter 在 python 上写一个小游戏(顺便说一下,我不允许使用任何其他非内置模块)并且我想在主窗口上播放背景歌曲,这是那个包含标题,以及转到其他窗口和内容的按钮... 所以问题
我有一个 Azure WebJob,它在一个非常简单的应用服务标准:1 Small(计划)上运行。 现在,我的 WebJob(有 5 个函数正在运行)出现问题 - 我想停止 5 个正在运行的函数中的
我在 MacOS Lion 上使用 XCode 4.2。在模拟器中调试 iPhone/iPad 应用程序时,我使用 XCode 工具栏上的“停止”按钮(产品 | 停止)退出应用程序。在此之后,XCod
我刚刚下载了android开放源代码项目,并尝试使用make来构建它,我收到了以下消息: build/core/prebuilt.mk:91: *** recipe commences before
我以前从未制作过 makefile,但我们已经收到了这个,但是,如果我尝试运行它,它只会说, missing separator. stop. 我不知道可能出了什么问题 - 我已经确保空格只按制表符。
好吧,这段代码非常基本。用户将答案输入文本框,如果等于“第一+第二”,他们就得到一分。然后,他们有 5 秒钟的时间回答下一个数学问题。如果他们这样做了,函数“doCalculation”将再次运行,他
我在 viewController 中有一个循环动画 - (void)moveAnimating { [UIView animateWithDuration:2.0f animations:^
当我有一个待处理的 ASIFormDataRequest(作为异步任务启动)仍在执行并且用户按下后退按钮(为了弹出 View )时,我的 viewController 出现问题。 有什么方法可以停止该
我们正在使用 flashdevelop 和 flash CS 3 开发基于 flash 的游戏。我们正在使用 flash CS3 发布 swc,swc 将作为库在 flashdevlop 中使用。 一
我在线程中有一个连接,因此我将其添加到运行循环中以获取所有数据: [[NSRunLoop currentRunLoop] run]; [connection scheduleInRunLoop
你好,我做了一个 php 套接字服务器来从 plc 获取数据,plc 被配置为 tcp 套接字客户端。 我有一个严重的问题,如果本地网络出现故障,似乎功能 socket_accept 停止,plc 无
这个问题已经有答案了: How to stop a setTimeout loop? (10 个回答) 已关闭 8 年前。 请帮助获得正确的函数或方法来停止 setTimeout 函数。 我一直在尝试
我正在运行一个多项目SBT(v0.13)构建,并且希望它在子项目中遇到的第一个错误(编译)时快速失败(停止)。 当前的行为是,当某项无法在子项目中进行编译时,构建将继续(以编译所有其他子项目)。 一旦
我有播放.wav文件中声音的代码,但是我无法停止播放歌曲,甚至无法退出程序直到播放结束。因为这是一首5分钟的歌曲,所以这是一个问题。这是我如何播放wav的代码: public class EasySo
我正在寻找一种解决方案,该如何控制从JSF应用程序播放音频文件。 我不需要完整的解决方案,只需引用我可以用来控制播放音频文件(开始/停止/更改声音)的组件即可。 我尝试搜索过去的问题,但没有成功。 我
我已经在test.ps1中编写了以下函数,在运行该脚本以启动/停止/ ..时我想做一个选择: function getState($SeviceName) { $server = @('hos
我必须设置一个 10 分钟的计时器,它会重定向到主屏幕。此外,它必须在每个操作(例如按下按钮)时重置。我找到了这个计时器:https://github.com/fengyuanchen/vue-cou
我正在制作一个聊天应用程序,功能之一就是发送声音。发送的HTML如下: LOL Stop Play 第一次发送时,“自动播放”效果很好。因此,现在我
我基本上希望页面能够接受用户输入的时间(以秒为单位)。 之后我希望当用户按下“开始”按钮时开始倒计时按下暂停按钮时“暂停”。还有一个重置按钮,以便用户可以从头开始倒计时。 这是我到目前为止得到的:
我需要停止 $.each 循环,加载图像,然后继续循环。我有 Canvas ,可以在其中加载对象图像。对象以正确的顺序排列在数组中。现在,当我尝试从数组加载对象时,存在一个问题:由于尺寸不同,并且它们
我是一名优秀的程序员,十分优秀!