【问题标题】:How can I send fake sms to myself without mobile network usage?如何在不使用移动网络的情况下向自己发送假短信?
【发布时间】:2011-08-22 18:33:13
【问题描述】:

我想在我的应用程序中以短信形式显示一些信息。 但是 SmsManager 和 BroadcastReciever 不能在手机上创建短信和通知。

如何以编程方式向自己发送假短信?有什么想法、解决方法或任何研究课程...?

谢谢。

【问题讨论】:

    标签: android sms send


    【解决方案1】:

    概念证明

    通话短信列表

    Intent intent = new Intent("android.intent.action.MAIN");
            intent.setComponent(
                new ComponentName("com.android.mms","com.android.mms.ui.ConversationList"));
            startActivity(intent);
    

    阅读短信

    cursor c= getContentResolver().query(uri, null, null ,null,null); 
            startManagingCursor(c);
            c.moveToFirst();  
    
                String body = c.getString(c.getColumnIndexOrThrow("body")).toString();
                String number = c.getString(c.getColumnIndexOrThrow("address")).toString();
    
            c.close(); 
    
            Toast.makeText(getApplicationContext(), number, Toast.LENGTH_LONG).show();
    

    写短信

    ContentValues values = new ContentValues();
            values.put("address", "SENDER");
            values.put("body", "foo bar");
            getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
    

    清单

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

    问题 之后没有事件,因此android不知道是否有新消息。

    【讨论】:

    • 也许你可以试试 getContext().getContentResolver().notifyChange(uri, null);只是想法。
    • 是的,只需构建自己的类来启动短信应用程序,并向用户显示通知。
    • 这种方式有问题。当我打开一个真正的短信通知时,短信应用程序显示“未读”状态。但如果短信是伪造的。已读。
    • 现在是否已弃用?
    【解决方案2】:

    您可以从另一个 Android Emulator 实例发送 SMS。这可以通过 Eclipse 中的 Emulator control View 或使用Telnet 来完成。

    【讨论】:

    • 比你。 Bu 我想以编程方式做到这一点。有什么方法可以根据您的链接从android控制台发送telnet sms命令?
    • 我认为你不能从 Emulator 本身发送 SMS,我认为没有必要。
    猜你喜欢
    • 2015-04-18
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多