android实习程序 ——短信

来源:互联网 发布:alt 左键 ubuntu 编辑:程序博客网 时间:2024/06/08 06:22
短信格式:

电话号码:(3/4位)区号 + (7/8)号码
中国电话号码难以处理

短信的uricontent://sms开头

短信
body    //内容
type    //类型(别人发给我或发给别人)1:接受,2:发出(除1以外的)
date    //时间
id:    //可能不准确
Thread_id//准确,短信会话的分组依据
read()    //0表示未读,1表示已读
address    //地址:电话号码



O2O   :线上to线下
中国工商银行 2303亿

添加滚动条
<ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
添加在最外层
滚动条的高度
短信显示的高度
android的屏幕也是有坐标的
以左上角为原点,向右为X轴的正方向,向下为Y轴的正方向

滚动条的高度最多只能是屏幕的高度,但是短信显示的高度可以超出屏幕




主线程也可称为UI线程,与界面的响应度有关
优先度从大到小的排列的线程
Activity运行在主线程中,创建也是这里面
执行oncreate()、onstart()、onresume()
查询看看用户是否有ontouch()事件:触摸事件也为主线程
执行handler、service
主线程忙,须有优先度的排列

Ctrl + Shift + F :java 中的格式化
注意把搜狗输入法关掉,搜狗输入法会占用该快捷键


阿里云 的 android SDK




1、短信界面
2、在Log中查看短信
3、加滚动条的从下往上显示短信
===========================================
1、短信界面
sms_detail_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:gravity="bottom"
    android:background="#f0f0fd">    
    
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="@drawable/cvsn_bg_left"
    android:text="hellosfsdf"
    android:textColor="#0d0d0d"
    android:gravity="right"
    android:layout_gravity="left"
android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"  />
    
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="@drawable/cvsn_bg_right"
    android:text="hi"
    android:textColor="#0d0d0d"
    android:gravity="right"
    android:layout_gravity="right"
    android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
       />
    

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            android:layout_marginLeft="48dp"
            android:layout_marginTop="4dp"
            android:layout_weight="1.25"
            android:background="@drawable/cvsn_bg_right"
            android:gravity="right"
            android:text="Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2"
            android:textColor="#0d0d0d" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2013/07/10 11:35" 
            android:textColor="#0d0d0d"
            android:paddingRight="16dp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            android:layout_marginTop="4dp"
            android:layout_marginRight="48dp"
            android:background="@drawable/cvsn_bg_left"
            android:gravity="left"
            android:text="HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" 
            android:textColor="#0d0d0d"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2013/07/10 11:30" 
            android:textColor="#0d0d0d"
            android:paddingLeft="16dp"/>
    </LinearLayout>
    
 
</LinearLayout>
===================================================-
2、在Log中查看短信
SmsActivity.java
package cpm.tarena.Phone;

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;

public class SmsActivity extends Activity{
ContentResolver mContentResolver;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mContentResolver  = this.getContentResolver();
//读出每个电话号码,对应的最新一条短信//准备Uri 调用数据
Uri smsTitle =Uri.parse("content://mms-sms/conversations");
Cursor mCursor  = mContentResolver.query(smsTitle, null, null, null, "date desc");
String[] arrcols  = mCursor.getColumnNames();
while(mCursor.moveToNext()){
for(int i = 0; i<arrcols.length; i++){
Log.i("sms_data", arrcols[i]+":"+mCursor.getString(i));
}
Log.i("sms_data", "-------------------------");
}
mCursor.close();
//查询Thread_id对应的短信
Uri  smsdetaildata = Uri.parse("content://sms");
mCursor  =mContentResolver.query(smsdetaildata, null, "thread_id=1", null, "date desc");
arrcols  = mCursor.getColumnNames();
while(mCursor.moveToNext()){
for(int i = 0; i<arrcols.length; i++){
Log.i("sms_detaildata", arrcols[i]+":"+mCursor.getString(i));
}
Log.i("sms_detaildata", "************************");
}
mCursor.close();
}

}

在manifest 中修改name的为.SmsActivity
创建sms_data  和 sms_detaildata 分别查看


=================================================================
3、加滚动条的从下往上显示短信
sms_detail_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="#fcfcfc">

    <ScrollView
        android:id="@+id/sms_scrollview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#fcfcfc" >

        <LinearLayout
            android:id="@+id/sms_detail_layout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#fdfdfd"
            android:gravity="bottom"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:orientation="vertical" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:layout_marginLeft="24dp"
                    android:layout_marginTop="4dp"
                    android:background="@drawable/cvsn_bg_right"
                    android:text="Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2Hi2" 
                    android:textColor="#0d0d0d"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2013/07/10 11:35" 
                    android:textColor="#0d0d0d"
                    android:paddingRight="16dp"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:orientation="vertical" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:layout_marginRight="24dp"
                    android:layout_marginTop="4dp"
                    android:background="@drawable/cvsn_bg_left"
                    android:gravity="left"
                    android:text="HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" 
                    android:textColor="#0d0d0d"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2013/07/10 11:30"
                    android:textColor="#0d0d0d" 
                    android:paddingLeft="16dp"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:orientation="vertical" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:layout_marginRight="24dp"
                    android:layout_marginTop="4dp"
                    android:background="@drawable/cvsn_bg_left"
                    android:gravity="left"
                    android:text="HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" 
                    android:textColor="#0d0d0d"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2013/07/10 11:30"
                    android:textColor="#0d0d0d" 
                    android:paddingLeft="16dp"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:orientation="vertical" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:layout_marginRight="24dp"
                    android:layout_marginTop="4dp"
                    android:background="@drawable/cvsn_bg_left"
                    android:gravity="left"
                    android:text="4HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" 
                    android:textColor="#0d0d0d"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2013/07/10 11:30"
                    android:textColor="#0d0d0d" 
                    android:paddingLeft="16dp"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:orientation="vertical" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:layout_marginRight="24dp"
                    android:layout_marginTop="4dp"
                    android:background="@drawable/cvsn_bg_left"
                    android:gravity="left"
                    android:text="3HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" 
                    android:textColor="#0d0d0d"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2013/07/10 11:30"
                    android:textColor="#0d0d0d" 
                    android:paddingLeft="16dp"/>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</RelativeLayout>
-----------------------------------------
SmsActivity.java
package cpm.tarena.Phone;

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.ScrollView;

public class SmsActivity extends Activity {

ContentResolver mContentResolver;
LinearLayout mLinearLayout;
ScrollView mScrollView;

Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);

int mScrollViewHeight = mScrollView.getHeight();
int mLinearLayoutHeight = mLinearLayout.getMeasuredHeight();

int moveSizeY = mLinearLayoutHeight - mScrollViewHeight;
mScrollView.scrollTo(0, moveSizeY);

}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sms_detail_layout);

// 找到滚动条和显示短信的布局,计算 该移动的高度
mScrollView = (ScrollView) findViewById(R.id.sms_scrollview);
mLinearLayout = (LinearLayout) findViewById(R.id.sms_detail_layout);

// //1毫秒、10毫秒、100毫秒不行,1秒就行了(简单推迟)
// mHandler.sendEmptyMessageDelayed(0, 1000);

mContentResolver = this.getContentResolver();

// 读出每个电话号码,对应的最新一条短信//准备Uri 调用数据
Uri smsTitle = Uri.parse("content://mms-sms/conversations");

Cursor mCursor = mContentResolver.query(smsTitle, null, null, null,
"date desc");

String[] arrcols = mCursor.getColumnNames();

while (mCursor.moveToNext()) {
for (int i = 0; i < arrcols.length; i++) {
Log.i("sms_data", arrcols[i] + ":" + mCursor.getString(i));
}
Log.i("sms_data", "-------------------------");
}
mCursor.close();

// 查询Thread_id对应的短信
Uri smsdetaildata = Uri.parse("content://sms");
mCursor = mContentResolver.query(smsdetaildata, null, "thread_id=1",
null, "date desc");
arrcols = mCursor.getColumnNames();

while (mCursor.moveToNext()) {
for (int i = 0; i < arrcols.length; i++) {
Log.i("sms_detaildata", arrcols[i] + ":" + mCursor.getString(i));
}
Log.i("sms_detaildata", "************************");
}
mCursor.close();
}

@Override
protected void onResume() {
super.onResume();
// 1毫秒、10毫秒不行,100毫秒就行了(简单推迟)
mHandler.sendEmptyMessageDelayed(0, 100);

}

}
==========================================================

原创粉丝点击