如何在不使用移动网络的情况下向自己发送假短信?

Posted

技术标签:

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

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

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

谢谢。

【问题讨论】:

【参考方案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,我认为没有必要。

以上是关于如何在不使用移动网络的情况下向自己发送假短信?的主要内容,如果未能解决你的问题,请参考以下文章

如何让机器人在不使用命令的情况下向特定频道中的特定公会发送消息

我可以在不安装 TestFlight 的情况下向自己发送 iPhone 应用吗

如何在不使用 Firebase 控制台的情况下向 iOS 设备发送 Firebase 云消息通知?

我开发了提醒应用程序,因此如何在不使用 firebase 的情况下向用户发送本地通知

如何在不关闭套接字的情况下向主机发送 FIN 标志

如何在不使用 Firebase Cloud Messaging 控制台的情况下向 Flutter/Firebase Cloud Messaging 上的特定设备发送通知 [重复]