是否可以通过收件箱短信打开我的应用程序?

时间:2014-01-29 11:26:18

标签: android mobile

我怀疑通过收件箱短信打开我的应用程序(来自特定号码),是否可能?请指导我或提出一些问题的提示。

我曾尝试使用谷歌,但无法找到合适的解决方案。

提前致谢。

3 个答案:

答案 0 :(得分:5)

您可以通过短信中包含的链接打开您的应用。

为您的域创建一个intent-filter,如下所示:

<activity
    android:name="ActivityFromSMS" >
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data
            android:host="mydomain.com"
            android:scheme="http" />
    </intent-filter>
</activity>

然后,点击指向http://mydomain.com/...的链接(可以在短信中)将提示用户使用您的应用打开它。

答案 1 :(得分:2)

一般情况下,你可以听取输入短信然后只是寻找号码,它来自或它的内容,然后你可以使用意图开始你想要的活动。

代码应该看起来像here。您需要更改onReceive方法

答案 2 :(得分:0)

首先,您需要为传入的短信创建广播侦听器。在其onReceive方法中,您可以使用以下代码:

try
{
    Log.d("In try", "In Try");

    new Handler().postDelayed(new Runnable()
    {
        public void run()
        {

            Toast.makeText(mycontext, "Number"+incommingNumber, Toast.LENGTH_SHORT).show();
                        cursor1= db.rawQuery("select phno from List where phno=?" , new String[] {""+incommingNumber} );
                        if(cursor1.moveToFirst())
                        {
                            do{
                                String pno = cursor1.getString(0);
                                Toast.makeText(mycontext, "phno: "+pno, Toast.LENGTH_SHORT).show();
                                Log.d("DB CHEK", "phno: "+pno);

                                dbHelper_sms = new SQLDatabase(mycontext);
                                db_sms = dbHelper_sms.getWritableDatabase();
                                val_sms=new ContentValues();

                                //Get SMS body
                                val_sms.put("body",cursor.getString(cursor.getColumnIndex("Body")) );
                                val_sms.put("phno",incommingNumber);
                                db_sms.insert("SmsList",null,val_sms);



                                //Delete SMS from inbox 
                                mycontext.getContentResolver().delete(Uri.parse("content://sms/conversations/"+cursor.getString(cursor.getColumnIndex("thread_id"))), null, null);


                                //Log.d("Waiting", "Do Nothing");
                                Toast.makeText(mycontext, "WHITELIST SMS DELETED : "+cursor.getString(cursor.getColumnIndex("Body")), Toast.LENGTH_SHORT).show();
                            }while(cursor1.moveToNext());
                        }

                    }
                    cursor.close();
                    cursor1.close();
                    db.close();
                    dbHelper.close();
         }
    }, 2000);

 }
 catch(Exception e)
 {
     e.printStackTrace();
 }

现在使用上面的代码你可以得到传入短信的正文,你也可以从收件箱中删除它以删除它的踪迹。在你获得身体后,它可以告诉你如何使用它。你想以编程方式打开一个应用程序吗?我建议检查一下:How do I programmatically launch a specific application in Android?

希望这很有用。