我怎样才能在Android Studio中创建一个项目来运作的默认短信应用 [英] How can I create a project in Android Studio to function default SMS app

查看:953
本文介绍了我怎样才能在Android Studio中创建一个项目来运作的默认短信应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在previous查询的延续,请参阅:短信接收器对于和API等于或高于19

Continuation of the previous query, see: SMS Receiver for AND API 19 and higher

我需要使应用程序在后台运行,并如下所示,我可以在安装设置为默认后,有它:的http://android-developers.blogspot.cz/2013/10/getting-your-sms-apps-ready-for-kitkat.html

I need to make the application run in the background and I could have it after installing the set as a default as shown here: http://android-developers.blogspot.cz/2013/10/getting-your-sms-apps-ready-for-kitkat.html

于是我问如何创建一个项目来显示列表超级骗子短信,其中最后设置为默认值。

So I asked how to create a project to display a list of the "Super Duper SMS," which finally set as default.

整个程序必须作为服务运行,而不需要基本功能的屏幕接收短信,应在核Android登记

The whole program must running as a service, without the need any screen for basic functions Receive SMS and should be registered in the core android

感谢您的任何建议。

推荐答案

我试过这code它帮我...

I am tried with this code it help me...

manifests.xml

manifests.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.newsmsapp">

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/smsicon"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name="com.example.newsmsapp.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">

    </activity>

    <activity android:name="com.example.newsmsapp.ComposeSMS">

        <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"/>


            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.LAUNCHER" />

            <data android:scheme="sms"/>
            <data android:scheme="smsto"/>
            <data android:scheme="mms"/>
            <data android:scheme="mmsto"/>

        </intent-filter>
    </activity>

    <receiver
        android:name="com.example.newsmsapp.SMSReceiver"
        android:permission="android.permission.BROADCAST_SMS">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_DELIVER" />


        </intent-filter>
    </receiver>

    <activity
        android:name="com.example.newsmsapp.NotificationView"
        android:label="@string/title_activity_notification_view"
        android:theme="@style/AppTheme.NoActionBar">

    </activity>

    <receiver android:name="com.example.newsmsapp.MMSReceiver" android:permission="android.permission.BROADCAST_WAP_PUSH">
        <intent-filter>
            <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER"/>
            <data android:mimeType="application/vnd.wap.mms-message"/>
        </intent-filter>
    </receiver>

    <service android:name="com.example.newsmsapp.HandlessSMSSendService"
        android:exported="true"
        android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
        <intent-filter>
            <action android:name="android.intent.action.RESPOND_VIA_MESSAGE"/>
            <data android:scheme="sms"/>
            <data android:scheme="smsto"/>
            <data android:scheme="mms"/>
            <data android:scheme="mmsto"/>
        </intent-filter>
    </service>
</application>

然后创建4个文件smsReader,mmsReader,ComposeSMS,HeadlessSMSservice

then create 4 file for smsReader,mmsReader,ComposeSMS,HeadlessSMSservice

smsReader.java

smsReader.java

public class SMSReceiver extends BroadcastReceiver {
Notification notification;//=new Notification(R.drawable.icon,"New Message",System.currentTimeMillis());
NotificationManager notificationmaneger;

String SMSmsg;
public SMSReceiver() {
}
public static final String SMS_BUNDLE = "pdus";
@Override
public void onReceive(Context context, Intent intent) {
    Bundle intentExtras = intent.getExtras();
    if (intentExtras != null) {
        Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
        String smsMessageStr = "";

        for (int i = 0; i < sms.length; ++i) {
            SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]);

            String smsBody = smsMessage.getMessageBody().toString();
            String address = smsMessage.getOriginatingAddress();

            smsMessageStr += "SMS From: " + address + "\n";
            smsMessageStr += smsBody + "\n";

            builder.setAutoCancel(true);
            //  builder.setTicker("this is ticker text");
            builder.setContentTitle("New Messge");
            builder.setContentText(SMSmsg);
            builder.setSmallIcon(R.drawable.smsicon);
            builder.setColor(context.getResources().getColor(R.color.colorAccent));
            builder.setContentIntent(pendingIntent);
            builder.setOngoing(true);
            // builder.setSubText("You have pending tax");   //API level 16
            //builder.setNumber(100);
            builder.build();
        }
SMSmsg=smsMessageStr;

    }
}

mmsReader.java

mmsReader.java

public class MMSReceiver extends BroadcastReceiver
{
    public MMSReceiver()
    {
     }
    @Override
    public void onReceive(Context context, Intent intent) {
    }
  }

ComposeSMS.java

ComposeSMS.java

public class ComposeSMS extends Activity {

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
 }

}

HeadlessSMSservices.java

HeadlessSMSservices.java

public class HandlessSMSSendService extends Service {

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
    }
 }

如果u希望看到的短信然后composeSMS.java添加列表视图和SMS表接收到的数据绑定到列表视图适配器。

if u want to see SMS then add listview in composeSMS.java and bind received data from sms table to listview adapter.

这篇关于我怎样才能在Android Studio中创建一个项目来运作的默认短信应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆