Android Broadcast 简易版手机勒索软件

来源:互联网 发布:好用又不贵的面霜知乎 编辑:程序博客网 时间:2024/05/19 02:42

项目简介:

该项目模拟一个手机勒索软件

详细介绍:

项目安装后,进入主界面后,用户点击返回键并不会退出界面,用户重新启动后项目会自动启动,手机上一直显示的是主界面
(项目没有完全完成,其中点击按钮后应当跳转到其他动作上,这里没有继续做下去。还有就是用户直接按home键可以退出)

该应用涉及到的知识有:

  • 1.Android的四大组件之一:广播接收者的使用。
    用户开机,自动启动应用
  • 2.如何使手机返回键失效
    返回键是可以屏蔽的,因为返回键是有程序自行处理的
  • 3.如何使home键失效,目前该项目中没有做
    思路:
    home键是无法屏蔽的,因为home键是由系统处理的。
    home键点击后,系统会自动调用栈顶Activity对象,
    所以,可以做一个监控,一旦系统栈顶的Activity对象不是勒索软件的Activity对象,
    我们就把勒索软件的Activity对象放到栈顶,
    这是给人的假象就是home键失效,无论怎么点击,勒索软件都退步出去

注意:

1. 监听开机广播需要添加权限

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

2. 在Activity上下文之外调用startActivity(即启动活动)需要设置任务栈,该任务栈用来存放将要启动的Activity对象

实际上,在Activity上下文中调用startActivity,系统会自动创建一个任务栈,不需要用户自己创建

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

步骤:

1. 创建一个Android项目,写好布局文件,界面如下所示:

这里写图片描述

2. 在 MainActivity写入一下代码:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    // 用户点击按钮后,销毁当前活动    public void onclick(View view) {        Toast.makeText(getApplicationContext(), "你是个好人", 0).show();        finish();    }    // 让返回键失效    @Override    public void onBackPressed() {        Toast.makeText(getApplicationContext(), "老实点,交钱保平安", 0).show();    }    // 销毁当前活动    @Override    public void finish() {        Toast.makeText(getApplicationContext(), "你是个好人", 0).show();        super.finish();    }}

3. 创建一个广播接收者,用来开启启动该项目:

public class BootReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        // 每次开机启动该软件        Intent it = new Intent(context, MainActivity.class);        // 在Activity上下文之外调用startActivity需要设置任务栈,该任务栈用来存放将要启动的Activity        // 实际上,在Activity上下文中调用startActivity,系统会自动创建一个任务栈,不需要用户自己创建        it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(it);    }}

4. 在清单文件中注册receiver:

        <receiver android:name=".BootReceiver">            <intent-filter >                <action android:name="android.intent.action.BOOT_COMPLETED"/>            </intent-filter>        </receiver>

开启启动用到的广播需要添加权限:

 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
0 0
原创粉丝点击