안드로이드 문자 그룹 발송 기능의 실현
실현된 프로그램은 어렵지 않다. 프로그램은 목록이 있는 대화상자를 제공하여 사용자가 문자를 보낼 대상, 즉 받는 사람의 전화번호를 선택할 수 있도록 한다.
//
ArrayList<String> sendList = new ArrayList<String>();
SmsManager를 사용하여 각 전화 번호에 대해 문자를 순차적으로 보냅니다.
for (String number : sendList)
{
// PendingIntent
PendingIntent pi = PendingIntent.getActivity(
MainActivity.this, 0, new Intent(), 0);
//
sManager.sendTextMessage(number, null, content
.getText().toString(), pi, null);
}
//
다음은 소스 코드입니다.
public class MainActivity extends Activity
{
EditText numbers, content;
Button select, send;
SmsManager sManager;
//
ArrayList sendList = new ArrayList();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sManager = SmsManager.getDefault();
// 、
numbers = (EditText) findViewById(R.id.numbers);
content = (EditText) findViewById(R.id.content);
select = (Button) findViewById(R.id.select);
send = (Button) findViewById(R.id.send);
// send
send.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
for (String number : sendList)
{
// PendingIntent
PendingIntent pi = PendingIntent.getActivity(
MainActivity.this, 0, new Intent(), 0);
//
sManager.sendTextMessage(number, null, content
.getText().toString(), pi, null);
}
//
Toast.makeText(MainActivity.this, " "
, Toast.LENGTH_SHORT).show();
}
});
// select
select.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//
final Cursor cursor = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, null, null, null);
BaseAdapter adapter = new BaseAdapter()
{
@Override
public int getCount()
{
return cursor.getCount();
}
@Override
public Object getItem(int position)
{
return position;
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView,
ViewGroup parent)
{
cursor.moveToPosition(position);
CheckBox rb = new CheckBox(MainActivity.this);
// , 、
String number = cursor
.getString(cursor.getColumnIndex(ContactsContract
.CommonDataKinds.Phone.NUMBER))
.replace("-", "")
.replace(" " , "");
rb.setText(number);
// ,
if (isChecked(number))
{
rb.setChecked(true);
}
return rb;
}
};
// list.xml View
View selectView = getLayoutInflater().inflate(
R.layout.list, null);
// selectView list ListView
final ListView listView = (ListView) selectView
.findViewById(R.id.list);
listView.setAdapter(adapter);
new AlertDialog.Builder(MainActivity.this)
.setView(selectView)
.setPositiveButton(" ",
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog,
int which)
{
// sendList
sendList.clear();
// listView
for (int i = 0; i < listView.getCount(); i++)
{
CheckBox checkBox = (CheckBox) listView
.getChildAt(i);
//
if (checkBox.isChecked())
{
//
sendList.add(checkBox.getText()
.toString());
}
}
numbers.setText(sendList.toString());
}
}).show();
}
});
}
//
public boolean isChecked(String phone)
{
for (String s1 : sendList)
{
if (s1.equals(phone))
{
return true;
}
}
return false;
}
}
그러나 연락처를 너무 많이 보내면 심각한 네트워크 지연이 발생할 위험이 있다.
저자: 송뢰
https://blog.csdn.net/weixin_40599987/article/details/80697682
미친 안드로이드 개발
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.