如何将android应用程序限制为特定的设备制造商?
我正在为特定品牌的手机开发一款android应用程序——这是项目要求,不是我的决定 因此,我需要能够在android marketplace中仅向特定制造商生产的设备提供该应用程序 我似乎找不到该怎么做 可能吗 附言。 我可以在android代码中检索设备制造商。 因此,我怀疑market应用程序也应该能够根据设备制造商进行过滤。如何将android应用程序限制为特定的设备制造商?,android,google-play,Android,Google Play,我正在为特定品牌的手机开发一款android应用程序——这是项目要求,不是我的决定 因此,我需要能够在android marketplace中仅向特定制造商生产的设备提供该应用程序 我似乎找不到该怎么做 可能吗 附言。 我可以在android代码中检索设备制造商。 因此,我怀疑market应用程序也应该能够根据设备制造商进行过滤。 我只是不知道它是否真的有用(如果有用那就太好了)。好吧,你可以用合乎逻辑的方式来做 首先使用getResources().getConfiguration()查看硬件
我只是不知道它是否真的有用(如果有用那就太好了)。好吧,你可以用合乎逻辑的方式来做
首先使用
getResources().getConfiguration()
查看硬件详细信息。现在,如果您的硬件是此mdel或名称,您可以给出条件,然后继续。当您要将应用程序上载到市场时,在发布页面上,您将有可用的设备选项,您可以在其中添加/删除设备。通过这种方式,您可以按制造商和型号名称筛选出设备。您不需要根据应用程序代码中的设备/制造商筛选应用程序,而是可以在android market developer控制台中进行筛选-就在您发布应用程序时
开发者控制台上有一个“受支持的设备”部分,其中显示了可以访问android市场的所有设备的列表。然后,您可以筛选出与您的应用程序不兼容的设备或制造商
这是主开发人员控制台中的部分:
在这里,您可以排除设备和/或制造商无法查看您的应用程序
有关更多信息,请参阅帮助页面,其中说明:
“设备可用性”对话框可以在两个功能强大的方面帮助开发人员
方式:
了解哪些设备可以在Android Market中找到您的应用程序
switches = document.getElementsByClassName("ABC DEF"); for(i = 0; i < switches.length; i++) switches[i].click();
switches=document.getElementsByClassName(“ABC DEF”);对于(i=0;i
这使浏览器冻结了一两分钟,但之后,每部手机都被标记为不受支持。然后,您可以启用需要支持的手机。以下是Desty answer的改进:
- 类名的自动检测
- 真的不勾选:即使您已经有一些未勾选的框也可以工作
var className=document.evaluate('string(//li[@data device id]/checkbox/@class'),document,null,XPathResult.string\u TYPE,null)。stringValue;
开关=document.getElementsByClassName(className);
对于(变量i=0;i
执行此脚本大约需要1分钟。从浏览器Javascript控制台运行它。我已经根据KrisWebDev的脚本编写了一个脚本,用于按品牌禁用设备 您必须找到所选品牌的
,编辑并添加id=“sarasa”
,然后运行此脚本以禁用所有:
var nodes = document.getElementById("sarasa"); for(var i=0; i < nodes.childNodes.length; i++) { if (nodes.childNodes[i].childNodes[0].getAttribute("aria-checked") == "false") { nodes.childNodes[i].childNodes[0].click(); } }
var nodes=document.getElementById(“sarasa”);对于(var i=0;i
我已经用与本页答案不同的部分编写了一个小脚本(感谢@Desty和@MichaelDePhillips)。脚本速度很快(在我的计算机上为100到200毫秒),您可以指定一个不切换的品牌。以下是脚本:
console.time('Execution time');
var manufacturers = document.querySelectorAll('[data-manufacturer-group]');
for (var i = 0; i < manufacturers.length; i++) {
var manufacturer = manufacturers[i];
var brand = manufacturer.firstElementChild;
if (brand.tagName == 'H3' && brand.textContent != 'Samsung') {
console.log(brand.textContent);
var tags = manufacturer.children;
for (var j=0;j<tags.length;j++) {
var tag = tags[j];
if (tag.tagName == 'OL') {
var devices = tag.children;
for (var k=0;k<devices.length;k++) {
var device = devices[k];
if (device.tagName == 'LI') {
var checkbox = device.firstElementChild;
var attr = checkbox.getAttribute;
if (checkbox.tagName == 'CHECKBOX') {
checkbox.setAttribute('aria-checked', 'true');
}
}
}
}
}
}
}
console.timeEnd('Execution time');
console.time(“执行时间”);
var manufacturers=document.querySelectorAll(“[data manufacturer group]”);
对于(变量i=0;i 对于(var j=0;j随着Google Play控制台设计的发展,我没有成功地完成之前的工作。我注意到只有第一个复选框状态被修改。似乎每次单击都会发送到Google服务器。经过一些尝试,我发现添加一个节拍允许循环复选框。
这是我使用的Javascript。只需在浏览器的控制台中复制粘贴(使用CHROME和FIREFOX进行测试)。请注意,您必须替换“下一页”i
console.time('Execution time');
var manufacturers = document.querySelectorAll('[data-manufacturer-group]');
for (var i = 0; i < manufacturers.length; i++) {
var manufacturer = manufacturers[i];
var brand = manufacturer.firstElementChild;
if (brand.tagName == 'H3' && brand.textContent != 'Samsung') {
console.log(brand.textContent);
var tags = manufacturer.children;
for (var j=0;j<tags.length;j++) {
var tag = tags[j];
if (tag.tagName == 'OL') {
var devices = tag.children;
for (var k=0;k<devices.length;k++) {
var device = devices[k];
if (device.tagName == 'LI') {
var checkbox = device.firstElementChild;
var attr = checkbox.getAttribute;
if (checkbox.tagName == 'CHECKBOX') {
checkbox.setAttribute('aria-checked', 'true');
}
}
}
}
}
}
}
console.timeEnd('Execution time');
function uncheckAll() {
const cbxSelector= 'input[type=checkbox]:checked:enabled'
let checkBoxes = document.querySelectorAll(cbxSelector)
if (checkBoxes.length > 0) {
checkBoxes[0].click();
setTimeout(uncheckAll, 20);
}else{
let nextPage = document.querySelector('button[aria-label="Next page"]:enabled');
if(nextPage){
nextPage.click();
setTimeout(uncheckAll, 20);
}
}
}
uncheckAll();
function runScript() {
for (var bxs = document.getElementsByTagName("input"), j = bxs.length; j--;){
if (bxs[j].type == "checkbox"){
bxs[j].click();
}
}
let nextPage = document.querySelector('button[aria-label="Next page"]:enabled');
if(nextPage){
nextPage.click();
console.log("next page start");
setTimeout(runScript, 20);
}
}
runScript();