dan*_*ibb 2 android operating-system nexus-7
我正在构建一个应用程序,它将成为展览的一部分.它将显示在可以安全安装的Nexus 7上.该应用程序具有触摸屏功能,将显示交互式内容.
我需要能够在显示时禁用尽可能多的功能,因为我不希望公众能够获得除应用程序之外的任何其他功能.
我正在努力的主要是back/home/recent app list按钮.我找到了一些禁用主页按钮的例子(儿童锁Android - 是否可以禁用主页按钮的点击 )但理想情况下我需要按钮是不可见的,所以要关闭'发光'(黑色会很好).
Nexus 7的底部是否以某种方式受到保护,是否有其他版本的Android可以让我这样做?Nexus设备仅用于显示此应用,不需要其他功能.
任何建议都会很棒,非常感谢.
没有创建自己定制的Android ROM,除去底部的按钮,你最好的解决方案,将是使应用程序全屏,覆盖后退按钮,使您的应用程序的启动,以覆盖home键.
AFAIK,没有办法覆盖最近的应用程序按钮.
编辑:另一个选项是拥有一个全屏应用程序,然后使用一个覆盖按钮的安装.(感谢MaciejGórski的想法).
要全屏显示您的应用,请在您的活动中添加以下内容onCreate():
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
或者你也可以在清单中全屏显示应用程序,感谢@Niels:
<application android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
Run Code Online (Sandbox Code Playgroud)
要覆盖后退按钮,请添加以下方法:
@Override
public void onBackPressed() {
return;
}
Run Code Online (Sandbox Code Playgroud)
现在主页按钮比较棘手,将以下内容添加到清单中:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
Run Code Online (Sandbox Code Playgroud)
以下是<activity>:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
这个到你的清单下<application>,确保<receiver name>你定义的完整包名路径:
<receiver android:name="com.example.BootCompleteReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
最后,创建一个名为BootCompleteReceiver的java类文件,并使用以下代码:
public class BootCompleteReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent startActivityIntent = new Intent(context, YourActivityName.class);
startActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(parentActivityIntent);
}
}
Run Code Online (Sandbox Code Playgroud)
要在以后禁用您的应用程序的主屏幕发射器,按近期的应用按钮,从右侧向下滑动,点击设置,进入应用程序,然后点击右上角的三个点(垂直排列),按"复位应用程序首选项",然后最后按"重置应用程序".
我认为这应该只是涵盖所有.
编辑2我刚刚实现/测试过,BOOT_COMPLETED如果您将应用程序作为启动器,则不一定需要意图.这意味着<uses-permission>,<receiver>和BootComplete.java没有必要的.您可以使用<intent-filter>包含MAIN,HOME和DEFAULT属性的.
编辑3此处提供了更多/不同的信息:主机启动器在重启后出现碎片问题
| 归档时间: |
|
| 查看次数: |
10844 次 |
| 最近记录: |