小编Tom*_*Tom的帖子

使用applicationIdSuffix来佩戴应用程序和自定义构建类型

我有一个应用程序,我想添加Android Wear应用程序扩展.主应用程序有三种构建类型(调试,测试和发布).Beta版本applicationIdSuffix允许我在同一设备上并行安装Play-store版本和当前开发版本.这一切都很好,直到我添加了磨损应用程序.

主应用程序build.gradle看起来像这样:

apply plugin: 'com.android.application'

android {
    ...
    defaultConfig {
        ...
        applicationId "com.example.mainApp"
        ...
    }
    buildTypes {
        debug {
            applicationIdSuffix '.debug'                
        }
        beta {
            applicationIdSuffix '.beta'
        }
        release {
        }
    }
}

dependencies {
    ...
    wearApp project(':wear')
}
Run Code Online (Sandbox Code Playgroud)

Wear-App具有相同的构建类型,具有相同的applicationIdSuffix值.但是,当我构建beta应用程序(通过调用gradle assembleBeta)时,构建过程构建:wear:assembleRelease而不是:wear:assembleBeta为什么我在构建期间收到以下错误消息:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:handleBetaMicroApk'.
> The main and the micro apps do not have the same package name. …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin wear-os

23
推荐指数
1
解决办法
4881
查看次数

获取没有Wifi的Android设备的MAC地址

如何获取没有Wifi接口的android设备的网络接口的MAC地址(例如android模拟器)?通过WifiManager获得的WifiInfo返回null.

编辑

更清楚一点:我必须在本地网络上与现有网络协议(不是由我设计)进行通信,在注册阶段我必须在有效负载内发送通信接口的mac地址.

android mac-address

21
推荐指数
3
解决办法
5万
查看次数

在javascript中完全克隆一个对象

我试图在javascript中完全克隆一个对象.我使用jquery知道以下解决方案:

var newObject = jQuery.extend({}, oldObject);
// Or
var newObject = jQuery.extend(true, {}, oldObject);
Run Code Online (Sandbox Code Playgroud)

但问题是,对象类型丢失了:

var MyClass = function(param1, param2) {
    alert(param1.a + param2.a);
};
var myObj = new MyClass({a: 1},{a: 2});
var myObjClone = jQuery.extend(true, {}, myObj);
alert(myObj instanceof MyClass);      // => true
alert(myObjClone instanceof MyClass); // => false
Run Code Online (Sandbox Code Playgroud)

是否有任何解决方案可以在第二个警报上实现?

javascript jquery clone

20
推荐指数
1
解决办法
1万
查看次数

如何将图标放入自定义对话框的标题中

我想把一个drawable放到一个对话框标题栏中.我尝试了以下方法:

final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);
dialog.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.some_icon);
dialog.setTitle(R.string.my_dialog_title);
dialog.setContentView(R.layout.my_dialog_layout);
...
Run Code Online (Sandbox Code Playgroud)

图标没有显示,但标题向右移动了一点.看来对话框为drawable保留空间但不绘制它.我尝试了几个不同的图标(也来自android资源),但没有它们工作.

icons android dialog title

18
推荐指数
2
解决办法
2万
查看次数

保存并恢复ExpandableListActivity的展开/折叠状态

我有一个ExpandableListActivity(使用SimpleCursorTreeAdapter),当用户点击子元素时,它会启动另一个活动.在新活动中按后退按钮时,所有列表项都会再次折叠.如何保存ExpandableListActivity的展开状态并再次将其还原.

我已经尝试像这样实现onSaveInstanceState()和onRestoreInstanceState()......

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Parcelable listState = getExpandableListView().onSaveInstanceState();
    outState.putParcelable("ListState", listState);
}


@Override
protected void onRestoreInstanceState(Bundle state) {
    super.onRestoreInstanceState(state);
    Parcelable listState = state.getParcelable("ListState");
    getExpandableListView().onRestoreInstanceState(listState);
}
Run Code Online (Sandbox Code Playgroud)

...但是onRestoreInstanceState()从未被调用过.我还尝试在onCreate()方法中恢复状态,但它也没有被调用:

if (savedInstanceState != null) {
    Parcelable listState = savedInstanceState.getParcelable("ListState");
    getExpandableListView().onRestoreInstanceState(listState);
}
Run Code Online (Sandbox Code Playgroud)

android state expandablelistview

11
推荐指数
1
解决办法
7098
查看次数

如何最好地添加评论/评级系统到Android应用程序

我已经发布了一个Android应用程序,您可以在其中查看特定对象列表以及有关它们的详细信息.列表每天都会更改,但某些对象可能会再次出现.应用程序通过HTTP与PHP服务器通信,并定期提取对象列表.

我现在计划扩展应用程序,使其能够评价的对象,并添加评论类似于它是如何在Android市场完成的.我想避免强迫用户注册帐户以便发表评论.

我看到两个问题:

  • 评论系统可能被垃圾邮件发送者滥用
  • 可以从另一个系统添加注释

所以我的问题是:

  • 如何保护系统免受垃圾邮件侵害?
  • 如何使用服务器验证应用程序?
  • 如何将每个用户和对象的注释数量限制为一个?
  • 那个机器人设备ID怎么样?它是否足够独特,可以将其用作用户的标识符?
  • 您看到了哪些其他问题?

android comments rating rating-system

10
推荐指数
2
解决办法
9125
查看次数