我正在尝试开发一个锁定应用程序,我禁用了主页按钮单击,但仅在硬单击该按钮的电话中禁用了按钮,但是在没有硬主页按钮的最新版本中,没有禁用主页按钮。因此,在搜索之后,我发现处理此问题的唯一方法是使我的应用像HomeScreen一样,将其添加到清单中:
<activity
android:name=".HomeActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"
android:clearTaskOnLaunch="true"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:stateNotNeeded="true" >
<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>
</activity>
运行此应用程序时,它显示我在应用程序和android屏幕之间进行选择,当我选择应用程序时,每次单击主屏幕按钮都会打开我的应用程序!
我的问题是:
1-是所有Android版本中处理主页按钮的唯一方法吗?通过将我的应用程序设为HomeScreen应用程序?
2-只有在打开我的应用程序之后,还有其他方法可以禁用主页按钮吗?
3-如何成功打开锁后,如何以编程方式切换到TouchWiz默认主屏幕并将我的应用程序删除为主屏幕?
谢谢
答案 0 :(得分:0)
尝试删除其他活动并按以下方式进行:
import json
def fixkey(key):
# toy implementation
#print("fixing {}".format(key))
return key.replace("&", "").replace("$", "")
def normalize(data):
#print("normalizing {}".format(data))
if isinstance(data, dict):
data = {fixkey(key): normalize(value) for key, value in data.items()}
elif isinstance(data, list):
data = [normalize(item) for item in data]
return data
jsdata = """
{
"highest_table": {
"items": [{
"key": "Human 1",
"columns": {
"Na$me": "Tom",
"Description(ms/2)": "Table Number One on the Top",
"A&ge": "24",
"Ge_nder": "M"
}
},
{
"key": "Human 2",
"columns": {
"Na$me": "John",
"Description(ms/2)": "Table Number One on the Top",
"A&ge": "23",
"Ge_nder": "M"
}
}
]
}
}
"""
data = json.loads(jsdata)
data = normalize(data)
result = json.dumps(data, indent=2)
print(result)
每当有人按下主页按钮时,它将打开您的活动,这是一个主屏幕,而这次则不必先打开主页活动。
编辑:
如果您想在按下主屏幕按钮后返回到默认启动器,则可以覆盖以下方法:
<activity android:name=".MainActivity"
android:clearTaskOnLaunch="true"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:stateNotNeeded="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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>
</activity>