1

我正在开发一个信息亭应用程序(安装在有根的 Android 设备上),并希望删除对设置的访问权限。我认为这可以通过删除“settings.apk”来完成,对吗?如果不是请纠正我。

问题是,删除 Settings.apk 会有什么副作用?有什么我应该注意的吗?

4

2 回答 2

1

我认为这是个坏主意。我认为您需要创建一个可以在锁定屏幕上运行的应用程序。在您的主要FragmentActivity中,您必须添加下一个窗口标志:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

}

如果您的设备有主页物理按钮,那么您需要为启动器应用程序添加 AndroidManifest 标志:

<activity
    android:name="YourFragmentActivity"
    android:label="@string/app_name"
    android:theme="@style/MyTheme" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" /> 
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.MONKEY" />
    </intent-filter>
</activity>

您必须为您的设备添加锁定方法(引脚、图案等)。然后启动您的应用程序,按下锁定按钮(屏幕将关闭),重新按下锁定按钮。你的应用程序将在锁屏上。(并且没有人可以进入设置)

为了避免退出:

@Override
public void onBackPressed() {
    if (firstfragment.isVisible()) { //first fragment loaded in your backstack

    } else {
        super.onBackPressed();
    }
}

更新

这里有一段视频展示了它是如何工作的:

http://www.youtube.com/watch?v=ZtNAAVy_nWY

PD:对不起,我的英语不好。

于 2014-01-28T19:33:59.763 回答
0

是的,如果你删除 Settings.apk,你会破坏很多东西。比如说,新的 wifi 连接、蓝牙配对、声音调整方面的功能。此外,您还会破坏对它的引用,例如当用户尝试从状态栏下拉菜单或启动器启动设置时,它会导致相应的应用程序崩溃,无论是系统还是用户。但是为什么要删除apk?Ty 正在寻找替代方案,这将简单地限制用户访问它。希望我能帮上忙。

于 2014-01-28T19:15:44.547 回答