‘壹’ android怎样实现用代码从数据库获取短信内容等等
数据库获取代码如下:
String databaseFilename = DATABASE_PATH + "/" + DATABASE_NAME;
File dir = new File(DATABASE_PATH);
if (!dir.exists())
dir.mkdir();
if (!(new File(databaseFilename)).exists()) {
InputStream is = context.getResources().openRawResource(R.raw.jobexam);
FileOutputStream fos = new FileOutputStream(databaseFilename);
byte[] buffer = new byte[8192];
int count = 0;
while ((count = is.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}
fos.close();
is.close();
}
db = SQLiteDatabase.openOrCreateDatabase(databaseFilename, null);
‘贰’ 安卓如何添加代码让短信可以发送图片实现发送彩信。
手机通过短信传输多媒体文件(如图片、视频、音乐)的方法如下:
点击信息-编写图标-点击回形针图标-添加图片、音频、视频-选择您需要添加的附件-发送即可。注:通过信息发送图片、音乐等实际为通过彩信发送,请您确认已开通了GPRS数据业务,发送彩信可能会产生资费,请联系运营商确认。
‘叁’ android直接发送p编码后的短信
实现过程:
1>初始化:ATZ\r
2>设置文本模式:AT+CMGF=0\r(0:p模式,1:text模式)
3>设置PDU头:
typedef struct {
char SCA[16]; // 短消息服务中心号码(SMSC地址)
char TPA[16]; // 目标号码或回复号码(TP-DA或TP-RA)
char TP_PID; // 用户信息协议标识(TP-PID)
char TP_DCS; // 用户信息编码方式(TP-DCS)
char TP_SCTS[16]; // 服务时间戳字符串(TP_SCTS), 接收时用到
char TP_UD[16]; // 原始用户信息
char index; //短消息序号,在读取时用到
}SM_PARAM;
// SMSC地址信息段
memset(buf, 0, sizeof(buf));
nLength = strlen(pSrc->SCA); // SMSC地址字符串的长度
buf[0] = (char)((nLength & 1) == 0 ? nLength : nLength + 1) / 2 + 1; // SMSC地址信息长度
buf[1] = 0x91; // 固定: 用国际格式号码
nDstLength = gsmBytes2String(buf, pDst, 2); // 转换2个字节到目标PDU串
nDstLength += gsmInvertNumbers(pSrc->SCA, &pDst[nDstLength], nLength); // 转换SMSC到目标PDU串
// TPDU段基本参数、目标地址等
memset(buf, 0, sizeof(buf));
nLength = strlen(pSrc->TPA); // TP-DA地址字符串的长度
buf[0] = 0x11; // 是发送短信(TP-MTI=01),TP-VP用相对格式(TP-VPF=10)
buf[1] = 0; // TP-MR=0
buf[2] = (char)nLength; // 目标地址数字个数(TP-DA地址字符串真实长度)
buf[3] = 0x91; // 固定: 用国际格式号码
nDstLength += gsmBytes2String(buf, &pDst[nDstLength], 4); // 转换4个字节到目标PDU串
nDstLength += gsmInvertNumbers(pSrc->TPA, &pDst[nDstLength], nLength); // 转换TP-DA到目标PDU串
// TPDU段协议标识、编码方式、用户信息等
//nLength = strlen(pSrc->TP_UD); // 用户信息字符串的长度
memset(buf, 0, sizeof(buf));
buf[0] = pSrc->TP_PID; // 协议标识(TP-PID)
buf[1] = pSrc->TP_DCS; // 用户信息编码方式(TP-DCS)
buf[2] = 1; // 有效期(TP-VP)为5分钟
buf[3] = str2hex(user_p, pSrc->TP_UD); //用户信息的长度
nDstLength += gsmBytes2String(buf, &pDst[nDstLength], 4); // 转换该段数据到目标PDU串
strcat(p, "\x01a"); //以CTRL-A结束
gsmString2Bytes(p, &nSmscLength, 2); // 取PDU串中的SMSC信息长度
4>发送信息长度:AT+CMGS=长度,这步重要长度不对是发不出去的。
5>发送用户信息
1、目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。
1>使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;
2>使用PDU模式不仅支持中文短信,也能发送英文短信。
2、PDU模式收发短信可以使用3种编码:
1>7-bit(用于发送普通的ASCII字符,它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可 “压缩”成7个)
2>8-bit(通常用于发送数据消息,如:图片了,铃声等等)
3>UCS2编码(用于发送Unicode字符)
‘肆’ 如何用eclipse编写android app实现发短信的功能
大概的写一下步骤给你:
1.在android工程的配置文件里加上调用系统短信功能的权限:
java"><uses-permissionandroid:name="android.permission.SEND_SMS"></uses-permission>
<uses-permissionandroid:name="android.permission.READ_SMS"></uses-permission>
<uses-permissionandroid:name="android.permission.RECEIVE_SMS"></uses-permissin>
2、主要代码片段:
{
...
privatevoidsend1(Stringphone,Stringmessage){
PendingIntentpi=PendingIntent.getActivity(this,0,newIntent(this,testSms.class),0);
SmsManagersms=SmsManager.getDefault();
sms.sendTextMessage(phone,null,message,pi,null);
}
}
参数:phone:手机号码
message:短信内容
‘伍’ android 开发 一个通过服务端内容自动发送短信到指定号码
调用系统的发送短信界面,只需向系统发送一个Intent,并附带相关参数就可以了,下面以一个仿差demo说明。
类似下图的界面
activity_main.xml
[html] view plain
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/btn_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/padding_small"
android:gravity="center"
android:paddingLeft="@dimen/padding_small"
android:paddingRight="@dimen/padding_small"
android:text="@string/btn_send" />
<EditText
android:id="@+id/edit_phone_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/btn_send"
android:layout_marginLeft="@dimen/padding_small"友悔
android:layout_marginRight="@dimen/padding_small"
android:layout_toLeftOf="@id/btn_send"
android:hint="@string/edittext_hint"
android:inputType="phone"
android:paddingLeft="@dimen/padding_small" />
</RelativeLayout>
然后在MainActivity中编写相应的Java代码就可以了,操作很简单,在EditText中输入号码,然后点击Send,就跳到系统发备告皮送短信界面,并且接收人一栏里填入号码。相关的代码如下:
获取控件,响应Button的点击事件:
[java] view plain
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText) findViewById(R.id.edit_phone_number);
mButton = (Button) findViewById(R.id.btn_send);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNumber = mEditText.getText().toString();
if (!TextUtils.isEmpty(phoneNumber)) {
sendSmsWithNumber(MainActivity.this, phoneNumber);
}
}
});
}
向指定号码发送短信:
[java] view plain
/**
* 调用系统界面,给指定的号码发送短信
*
* @param context
* @param number
*/
public void sendSmsWithNumber(Context context, String number) {
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + number));
context.startActivity(sendIntent);
}
这样点击Send后,就会跳转到系统短信界面了,并且接收人一栏里就是刚才你填写的号码。
同理,要想调用系统发送短信界面后附加短信内容和以上是类似的,只需在Intent中附带相关的参数就可以了。
[java] view plain
/**
* 调用系统界面,给指定的号码发送短信,并附带短信内容
*
* @param context
* @param number
* @param body
*/
public void sendSmsWithBody(Context context, String number, String body) {
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("smsto:" + number));
sendIntent.putExtra("sms_body", body);
context.startActivity(sendIntent);
}
‘陆’ Android关于短信的源代码在packages/apps/Mms ,可是packages/apps/Mms这个在哪里
你是要看手机在系统根目录下的存有短信信息的代码或文字吗,首先要有root权限,然后要有能打开系统根目录的文件管理器,推荐re管理器(界面简单内存小),文件路径:根目录/data/data/ com.android.providers.telephony/databases/mmssms.db
mmssms.db选择数据库查看,点开word或word_content可以看到短信内容,我截图给你看,满意请采纳,谢谢!