长青亭-茗 2016-06-25 04:18
浏览 1244

android4.4以上的版本,插入短彩信怎么做

代码如下,用4.4以下的版本能插入,4.4以上的不行,需要做些什么,请大神们帮助,不禁感谢!

manifest文件:

<?xml version="1.0" encoding="utf-8"?>
package="com.test.contact"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.test.contact.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 
        android:name=".AddContactActivity"
        android:label="@string/contact_name"></activity>
   <activity 
       android:name=".AddSmsActivity"
       android:label="@string/sms_name">
       <intent-filter>
           <action android:name="android.intent.action.SEND" />
           <action android:name="android.intent.action.SENDTO" />
           <category android:name="android.intent.category.DEFAULT" />
           <category android:name="android.intent.category.BROWSABLE" />
           <data android:scheme="sms" />
           <data android:scheme="smsto" />
           <data android:scheme="mms" />
           <data android:scheme="mmsto" />
       </intent-filter>
   </activity>
   <activity 
       android:name=".AddMmsActivity"
       android:label="@string/mms_name"></activity>
    <activity
        android:name=".AddCallLogActivity"
        android:label="通话记录"></activity>

</application>
<!--添加联系人权限-->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>

插入短信activity:

package com.test.contact;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import android.provider.Telephony;

public class AddSmsActivity extends Activity{

String TAG = "AddSmsActivity";

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

    String defaultSmsPkg = Telephony.Sms.getDefaultSmsPackage(this);
    String mySmsPkg= this.getPackageName();
    if(!defaultSmsPkg.equals(mySmsPkg)){
        //            如果这个App不是默认的Sms App,则修改成默认的SMS APP
        //            因为从Android 4.4开始,只有默认的SMS APP才能对SMS数据库进行处理
        Intent intent=new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
        intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,mySmsPkg);
        startActivity(intent);
    }
}


public void addSmsButton_Click(View view){
    Toast toast = Toast.makeText(this,"开始添加短信",Toast.LENGTH_SHORT);
    toast.show();
    for(int i = 0;i < this.getCount();i++){
        insertSms(this.getPhoneNum()+i);
        Log.e(TAG,"addSmsButton_Click:"+this.getPhoneNum());
    }
    Toast toast1 = Toast.makeText(this,"添加成功",Toast.LENGTH_SHORT);
    toast1.show();
}

public Long getPhoneNum(){
    Long smsNum;
    String temp;
    final EditText inputNum = (EditText)findViewById(R.id.sms_num);
    if(TextUtils.isEmpty(inputNum.getText())){
        temp = "10086";
    }
    else temp = inputNum.getText().toString();
    smsNum = Long.parseLong(temp);
    return smsNum;
}

public String getContent(){
    String content;
    final EditText inputContent = (EditText)findViewById(R.id.sms_content);
    if(TextUtils.isEmpty(inputContent.getText())){
        content = "这是一条默认插入的短信,用来批量插入短信内容:1234567890!@#¥%……&*(),。、?good!";
    }
    else content = inputContent.getText().toString();
    return content;
}
public int getCount(){
    int count;
    String temp;
    final EditText inputTime = (EditText)findViewById(R.id.sms_time);
    if(TextUtils.isEmpty(inputTime.getText())){
        temp = "1";
    }
    else temp = inputTime.getText().toString();
    count = Integer.parseInt(temp);
    return count;
}

public void insertSms(Long number){
    ContentValues values = new ContentValues();
    values.put(Telephony.Sms.DATE,System.currentTimeMillis());//信息时间
    values.put(Telephony.Sms.READ,false);//阅读状态
    values.put(Telephony.Sms.TYPE,Telephony.Sms.MESSAGE_TYPE_INBOX);//1为收;2为发
    values.put(Telephony.Sms.ADDRESS,Long.toString(number));
    values.put(Telephony.Sms.BODY,this.getContent());
    Uri uri = getContentResolver().insert(Telephony.Sms.CONTENT_URI,values);
    Log.e(TAG,"number:"+Long.toString(number));
    Log.e(TAG,"content:"+this.getContent());
    Log.e(TAG,"uri:"+uri);
}

}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码
    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3