短线装逼,intent传递数据,onActivityResult,嗯 很厉害

来源:互联网 发布:杨坤32场演唱会 知乎 编辑:程序博客网 时间:2024/04/29 23:04

模拟短信发送给自己 爱慕虚荣什么的  木问题啊

用模拟器测试也是可以的 界面很丑,因为只是个小demo 功能才是最重要的


权限

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.liuan.smsimitate">    <uses-permission android:name="android.permission.WRITE_SMS" />    <uses-permission android:name="android.permission.READ_SMS" />    <!--读取联系人权限,上传联系人需要用到此权限 这个权限现在已经不提示了 防止你干坏事~~~ -->    <uses-permission android:name="android.permission.READ_CONTACTS"/>    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />    <uses-permission android:name="android.permission.GET_TASKS" />    <uses-permission android:name="android.permission.REORDER_TASKS" />    <!--读取手机信息权限 -->    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>    <!--外存储写权限,构建语法需要用到此权限 -->    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <!--外存储读权限,构建语法需要用到此权限 -->    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name=".MasterplateActivity"/>    </application></manifest>


代码

MainActivity

package com.example.liuan.smsimitate;import android.app.Activity;import android.content.ContentValues;import android.content.DialogInterface;import android.content.Intent;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.provider.ContactsContract;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private EditText mEtText;    private EditText mEtNumber;    private Button mBtContacts;    private Button mBtmastterplate;    private Button mBtsend;    private EditText mEtTime;    public final static int ContactrequestCode = 256;    public final static int MasterplatequestCode = 257;    private int delayTime;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        enterDialg();    }    private void enterDialg() {        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);        builder.setTitle("说明");        builder.setMessage("此软件完全免费\n但是一切都不是真的~~~~");        builder.setNegativeButton("我知道了", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {            }        });        builder.setPositiveButton("我就不", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                finish();            }        });        AlertDialog dialog = builder.create();        dialog.show();    }    private void initView() {        mEtText = (EditText) findViewById(R.id.et_aii_text);        mEtTime = (EditText) findViewById(R.id.et_aii_time);        mEtNumber = (EditText) findViewById(R.id.et_aii_number);        mBtContacts = (Button) findViewById(R.id.bt_aii_contacts);        mBtmastterplate = (Button) findViewById(R.id.bt_aii_masterplate);        mBtsend = (Button) findViewById(R.id.bt_aii_send);        String delayTime1 = mEtTime.getText().toString().trim();        if (TextUtils.isEmpty(delayTime1)) {            delayTime = 0;        } else {            // 换算成分钟 然后直接计算分钟            delayTime = Integer.parseInt(delayTime1) * 60 * 100;        }        mBtContacts.setOnClickListener(this);        mBtmastterplate.setOnClickListener(this);        mBtsend.setOnClickListener(this);    }    // 各种按钮各种点    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.bt_aii_contacts:                // 进入联系人页面                enterContacts();                break;            case R.id.bt_aii_masterplate:                // 进入模版页面                enterMasterplate();                break;            case R.id.bt_aii_send:                // 发送给自己                Toast.makeText(this, "发送成功,请耐心等待,或者去收件箱查看", Toast.LENGTH_SHORT).show();                String delayTime1 = mEtTime.getText().toString().trim();                if (TextUtils.isEmpty(delayTime1)) {                    delayTime = 0;                } else {                    // 换算成分钟 然后直接计算分钟                    delayTime = Integer.parseInt(delayTime1) * 60 * 1000;                }                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        send();                    }                }, delayTime);        }    }    @Override    protected void onDestroy() {        super.onDestroy();    }    private void send() {        // // [1]由于短信的数据库系统已经通过内容提供者暴露出来 所以我们可以直接通过内容解析者操作短信的数据库        Uri uri = Uri.parse("content://sms/");        String number = mEtNumber.getText().toString().trim();        String text = mEtText.getText().toString().trim();        //        //        ContentValues values = new ContentValues();        values.put("address", number); // 招商银行        values.put("body", text);        values.put("date", System.currentTimeMillis());        // [2]往短信数据库里面插入数据        getContentResolver().insert(uri, values);    }    private void enterMasterplate() {        Intent intent = new Intent(this, MasterplateActivity.class);        startActivityForResult(intent, MasterplatequestCode);    }    private void enterContacts() {//打开自己的联系人        Intent intent = new Intent(Intent.ACTION_PICK);        intent.setType(ContactsContract.Contacts.CONTENT_TYPE);//vnd.android.cursor.dir/contact        startActivityForResult(intent, ContactrequestCode);    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        switch (requestCode) {            case MasterplatequestCode:                if(resultCode==666) {                    Log.e("MasterplatequestCode: ", "没走进来");                    String content = data.getStringExtra("content");                    System.out.println("content" + content);                    Log.e("MasterplatequestCode: ", content);                    mEtText.setText(content);                    mEtText.setSelection(content.length());                }                break;            case ContactrequestCode:                if (resultCode == Activity.RESULT_OK) {                    Uri contactData = data.getData();                    Cursor c = managedQuery(contactData, null, null, null, null);                    if (c.moveToFirst()) {                        String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));                        String hasPhone = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));                        String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));                        String phoneNumber = null;                        if (hasPhone.equalsIgnoreCase("1")) {                            hasPhone = "true";                        } else {                            hasPhone = "false";                        }                        if (Boolean.parseBoolean(hasPhone)) {                            Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,                                    null,                                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "                                            + contactId,                                    null,                                    null);                            while (phones.moveToNext()) {                                phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));                                mEtNumber.setText(phoneNumber);                                mEtNumber.setSelection(phoneNumber.length());                            }                            phones.close();                        }                    }                }                break;        }    }}



MasterplateActivity

package com.example.liuan.smsimitate;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;public class MasterplateActivity extends Activity {    private ListView mLv;    private ArrayList<String> mList = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_masterplate);        initData();        mLv = (ListView) findViewById(R.id.lv_Masterplate);        mLv.setAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.item_text, mList));        mLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Intent intent = new Intent(MasterplateActivity.this,MainActivity.class);                String contnet = mList.get(position);                intent.putExtra("content",contnet);setResult(666, intent);                finish();            }        });    }    private void initData() {        mList.add("一辈子好像很长,从蹒跚学步到白发老去,要吃多少东西,要说多少字句,要走多少公里,没人算得清楚。 \n" +                "但当我遇到你,一辈子就没多长了。 \n" +                "只够记住,你我声息。");        mList.add("我希望有个如你一般的人 \n" +                "如山间清爽的风 \n" +                "如古城温暖的光 \n" +                "从清晨到夜晚 \n" +                "由山野到书房 \n" +                "只要最后是你 \n" +                "就好");        mList.add("去见你想见的人吧。趁阳光正好,趁微风不噪,趁繁花还未开至荼蘼,趁现在还年轻,还可以走很长很长的路,还能诉说很深很深的思念,趁世界还不那么拥挤,趁飞机还没有起飞,趁现在自己的双手还能拥抱彼此,趁我们还有呼吸。");        mList.add("酷的像风 野的像狗  \n" +                "不招人喜欢倒也自由");        mList.add("如果你认识从前的我,那么你就会原谅现在的我。");        mList.add("我要你知道,在这个世界上总有一个人是等着你的,不管在什么时候,不管在什么地方,反正你知道,总有这么个人。");        mList.add("一个人只有承担起狂风暴雨,才能守得住彩虹满天");        mList.add("纵使这世间再过繁花似锦,也抵不过你的回眸一笑");        mList.add("白天是遇见别人,夜晚是遇见自己");        mList.add("别低头,王冠会掉;别流泪,他人会笑");        mList.add("浮生若梦,浮尘如空");        mList.add("过去的都会过去,该来的都在路上");    }}


布局

activity_main.xml

<LinearLayout 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"    android:orientation="vertical"    >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="短信模拟器(并不花钱)" />    <EditText        android:id="@+id/et_aii_time"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="5dp"        android:hint="延时(不写默认0,单位分钟)"        android:numeric="integer" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="5dp"        android:orientation="horizontal" >        <EditText            android:id="@+id/et_aii_number"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="3"            android:hint="请输入来短信号码"            android:numeric="integer" />        <Button            android:id="@+id/bt_aii_contacts"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="联系人" />    </LinearLayout>    <EditText        android:id="@+id/et_aii_text"        android:gravity="top"        android:maxLines="9"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        android:hint="请输入来短信内容"        />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <Button            android:id="@+id/bt_aii_masterplate"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="模版" />        <Button            android:id="@+id/bt_aii_send"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="发送" />    </LinearLayout></LinearLayout>


activity_masterplate.xml

<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"    tools:context=".MasterplateActivity" >    <ListView        android:id="@+id/lv_Masterplate"        android:layout_width="match_parent"        android:layout_height="match_parent" /></RelativeLayout>


item_text.xml


<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/tv_content"    android:textSize="18sp"    android:layout_margin="7dp"    android:textColor="#00ff00"    android:layout_width="match_parent"    android:layout_height="match_parent"></TextView>





0 0
原创粉丝点击