我正在开发一个信息亭应用程序(安装在有根的 Android 设备上),并希望删除对设置的访问权限。我认为这可以通过删除“settings.apk”来完成,对吗?如果不是请纠正我。
问题是,删除 Settings.apk 会有什么副作用?有什么我应该注意的吗?
我正在开发一个信息亭应用程序(安装在有根的 Android 设备上),并希望删除对设置的访问权限。我认为这可以通过删除“settings.apk”来完成,对吗?如果不是请纠正我。
问题是,删除 Settings.apk 会有什么副作用?有什么我应该注意的吗?
我认为这是个坏主意。我认为您需要创建一个可以在锁定屏幕上运行的应用程序。在您的主要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:对不起,我的英语不好。
是的,如果你删除 Settings.apk,你会破坏很多东西。比如说,新的 wifi 连接、蓝牙配对、声音调整方面的功能。此外,您还会破坏对它的引用,例如当用户尝试从状态栏下拉菜单或启动器启动设置时,它会导致相应的应用程序崩溃,无论是系统还是用户。但是为什么要删除apk?Ty 正在寻找替代方案,这将简单地限制用户访问它。希望我能帮上忙。