更新:不应再向阅读此内容的任何人推荐此问题及其答案.Android不再推荐使用HttpClient(读取:弃用),而是推荐使用HttpUrlConnection.现在使用的库的一个很好的例子是Retrofit和OkHttp.在此问题的上下文中,可以使用后续查询保存,存储和传递cookie.这不是透明处理的.使用OkHttp,您可以使用拦截器.
我有一个具有多个意图的Android应用程序.
第一个意图是登录表单,后续意图依赖于登录过程提供的cookie.
我遇到的问题是,cookie似乎并没有贯穿整个意图.我在每个意图中创建新的HttpClients(我最初尝试将Parcelable传输到每个意图,但效果不是很好).
有没有人有任何提示让饼干坚持意图?
我的问题来自从JSONObject获取Iterator.
最简单形式的代码生成错误:
String json = client.retrieveList();
JSONObject jsonList = new JSONObject(json);
Iterator<String> i = jsonList.keys();
while(i.hasNext())
{
String next = i.next();
JSONArray jsonArray = jsonList.getJSONArray(next);
// Do stuff with jsonArray, example: jsonArray.getString(0), jsonArray.getString(1);
}
Run Code Online (Sandbox Code Playgroud)
确切的警告是:类型安全:Iterator类型的表达式需要未经检查的转换以符合Iterator
所以问题是如何根除这一警告?
非常感谢!
我正在编写一个旨在在一个特定设备模型(运行基于Amlogic的固件的Android机顶设备)上运行的应用程序.我有两个root功能,我的应用程序使用固件证书签名.
我的应用程序是该设备的主要关注点,能够启动完全关闭电源会很有帮助.
我没有这个shutdown命令.我确实有这个reboot命令.
reboot -p没有帮助.它只是在保持通电状态时冻结设备.
这PowerManager是更好的一步,但它将设备设置为睡眠模式,而不是完全关闭:
PowerManager pm = (PowerManager)getSystemService(Service.POWER_SERVICE);
pm.goToSleep(SystemClock.uptimeMillis());
Run Code Online (Sandbox Code Playgroud)
我对所有建议持开放态度 - 黑客或其他.Android的版本预计将继续保留4.2.2.
意图
此命令将导致设备重新启动.Intent.ACTION_SHUTDOWN似乎没有做任何事情.这个Intent可能只是报告关闭,而不是发起关闭吗?
Intent i = new Intent(Intent.ACTION_REBOOT);
i.putExtra("nowait", 1);
i.putExtra("interval", 1);
i.putExtra("window", 0);
sendBroadcast(i);
Run Code Online (Sandbox Code Playgroud)
我最幸运的是要求Intent关闭:
Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
i.putExtra("android.intent.extra.KEY_CONFIRM", true);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
关机线程
那更接近了.绝对有趣.你能找到一个使用它的例子吗?
到目前为止,我已经想出了这个:
Class<?> sdClass = Class.forName("com.android.server.power.ShutdownThread");
Constructor<?> con = sdClass.getDeclaredConstructors()[0];
con.setAccessible(true);
for (Method m : sdClass.getDeclaredMethods()) {
if (m.getName().matches("shutdown")) {
m.setAccessible(true);
m.invoke(sdClass, PlayerActivity.this, false);
} else if (m.getName().matches("rebootOrShutdown")) {
m.setAccessible(true);
m.invoke(sdClass, …Run Code Online (Sandbox Code Playgroud) 根据浮动操作按钮的新Android设计指南,将浮动操作按钮转换为工具栏应该是合理的.
是否有任何样本/示例来执行此类转换?
首先,关于这个问题有很多问题,但没有一个反映我的问题.我有例如读这个和这个.
我遇到的问题是,在极少数情况下,我的函数setDestinationInExternalPublicDir导致以下堆栈跟踪:
Fatal Exception: java.lang.RuntimeException: Unable to start receiver com.onlinetvrecorder.otrapp2.listeners.DownloadUpdateReceiver: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2274)
at android.app.ActivityThread.access$1500(ActivityThread.java:131)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4791)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download
at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:496)
at com.myapp.Utils.download(SourceFile:752)
at com.myapp.Receiver.onReceive(SourceFile:20)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2267)
at android.app.ActivityThread.access$1500(ActivityThread.java:131)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4791)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) …Run Code Online (Sandbox Code Playgroud) 我正在开发一个实现Flash Peer辅助网络的Android应用程序.
我有普通的Android控件和一个包含带嵌入式Flash播放器的HTML的WebView.
有时Flash播放器会请求许可(此后一切正常),有时它不会询问,而是会挂起.有没有办法可以强制Flash播放器请求权限?或者我可以将我的应用程序添加到Flash播放器每次接受的列表中?
核心问题是我想为子消息设置默认值。由于 proto3 不允许在 proto 文件中设置默认值。
示例 Protobuf
message Person {
int32 age = 1;
repeated Doggo doggos = 2;
}
message Doggo {
int32 rating = 1;
}
Run Code Online (Sandbox Code Playgroud)
串行器示例
object PersonSerializer : Serializer<Person> {
override val defaultValue: Person =
Person.getDefaultInstance().toBuilder()
.setAge(1)
.build()
override suspend fun readFrom(input: InputStream): Person {
try {
return Person.parseFrom(input)
} catch (exception: InvalidProtocolBufferException) {
throw CorruptionException("Cannot read proto.", exception)
}
}
override suspend fun writeTo(t: Person, output: OutputStream) {
t.writeTo(output)
}
}
Run Code Online (Sandbox Code Playgroud)
这可以将所有 Person 的默认年龄设置为 1。标准值为0。 …
从一台PC上的本地git存储库备份完整分支的最佳方法是将其添加到另一台PC上的本地git存储库。
如果远程git储存库服务器由于末端故障而脱机。
在 ListView 适配器中显示 EditText 问题成为焦点:
每个列表项都有三个EditText. 我想水平改变焦点。
我使用此代码成功地将焦点从第一个移动到第三个EditText。
当我接下来按下软键盘时,问题就出现了。我想将焦点移至下一个列表行,first EditText。但是,当我使用下面给出的代码时,焦点首先切换到同一个列表EditText
holder.edtStock.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT) {
if(holder.edtStock.hasFocus())
holder.edtOrderStock.requestFocus();
return true;
}
return false;
}
});
holder.edtOrderStock.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT) {
if(holder.edtOrderStock.hasFocus())
holder.edtStock.requestFocus();
return true;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
我想实现这个目标:
我使用Android Studio创建了Android项目及其后端AppEngine端点对应项.我有一个数据存储区,我正在使用Objectify.系统工作得很好,直到我在查询中添加了一个过滤器(仅显示特定的给定电子邮件).
Query<Report> query = ofy().load().type(Report.class).filter("email", user.getEmail()).order("email").order("-when").limit(limit);
Run Code Online (Sandbox Code Playgroud)
这是POJO数据存储区实体:
@Entity
public class Report {
@Id
Long id;
String who;
@Index
Date when;
String what;
@Index
String email;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试测试时,我从Google API Explorer收到此类错误:
com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found.
The suggested index for this query is:
<datastore-index kind=\"AccessReport\" ancestor=\"false\" source=\"manual\">
<property name=\"email\" direction=\"asc\"/>
<property name=\"when\" direction=\"desc\"/>
</datastore-index>
Run Code Online (Sandbox Code Playgroud)
据我所知,我只需要创建一个复合索引,包括特定字段的电子邮件和时间,以及它们的特定排序方向.
但是,我找到的大多数文档都告诉我编辑datastore-indexes.xml.
App Engine预定义实体的每个属性的简单索引.App Engine应用程序可以在名为datastore-indexes.xml的索引配置文件中定义更多自定义索引,该文件在应用程序的/ war/WEB-INF/appengine生成的目录中生成.
不幸的是,这个文件似乎并不存在于我的项目中.
是否有人熟悉使用Android Studio时改变这种情况的方法?
google-app-engine objectify google-cloud-endpoints google-cloud-datastore android-studio
android ×8
java ×2
cookies ×1
flash ×1
focus ×1
git ×1
httpclient ×1
json ×1
objectify ×1
permissions ×1