报错是在send按钮的点击事件,就是群发短信就会报错了……
Eclipse上报错显示那一行是获取短信内容(groupContent)那。权限设置了。求大神指教……
package com.example.groupsendfinal;
import java.util.ArrayList;
import java.util.List;
import com.example.groupsendfinal.MyBaseAdapter.ViewHolder;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity{
private ListView listview;
private MyBaseAdapter madapter;
private ArrayList<String> sendlist = new ArrayList<>();
private ArrayList<String> numberlist = new ArrayList<>();
private SmsManager manager;
private TextView numbers;
private EditText contents;
private Button select;
private Button send;
private String number,name;
private List<String> dividedMs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
manager.getDefault();
numbers = (TextView)findViewById(R.id.numbers);
contents = (EditText)findViewById(R.id.groupContent);
select = (Button)findViewById(R.id.select);
send = (Button)findViewById(R.id.send);
select.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds
.Phone.CONTENT_URI, null, null, null, null);
View selectView = getLayoutInflater().inflate(R.layout.item, null);
sendlist.clear();
madapter = new MyBaseAdapter();
madapter.myAdapter(cursor, getApplicationContext());
listview = (ListView)selectView.findViewById(R.id.list);
listview.setAdapter(madapter);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ViewHolder holder = (ViewHolder)arg1.getTag();
holder.checkBox.toggle();
madapter.getIsSelected().put(arg2, holder.checkBox.isChecked());
if(holder.checkBox.isChecked()){
cursor.moveToPosition(arg2);
number = cursor.getString(cursor.getColumnIndex(ContactsContract
.CommonDataKinds.Phone.NUMBER))
.replace(" ", "")
.replace("-", "");
name = cursor.getString(cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME));
sendlist.add(name + " " + number);
numberlist.add(number.toString());
}
}
});
AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
ad.setView(selectView)
.setPositiveButton("确定",
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog,
int which)
{
dataChanged();
numbers.setText(sendlist.toString());
}
}).show();
}
});
send.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String groupContent = contents.getText().toString();
PendingIntent pi = PendingIntent.getActivity(
MainActivity.this, 0, new Intent(), 0);
if(groupContent.length()>70){
dividedMs = manager.divideMessage(groupContent);
}
for (String num : numberlist)
{
if(groupContent.length()>70){
for(String str : dividedMs){
manager.sendTextMessage(num, null, str, pi, null);
}
}
else{
manager.sendTextMessage(num, null, groupContent, pi, null);
}
}
Toast.makeText(MainActivity.this, "短信群发完成"
, Toast.LENGTH_SHORT).show();
}
});
}
private void dataChanged(){
madapter.notifyDataSetChanged();