Questions tagged «android»

Android是Google的移动操作系统,用于对数字设备(智能手机,平板电脑,汽车,电视,Wear,Glass和IoT)进行编程或开发。对于与Android相关的主题,请使用特定于Android的标签,例如android-intent,android-activity,android-adapter等。对于与开发或编程无关但与Android框架相关的问题,请使用以下链接:https:// android.stackexchange.com。

13
Android的换行小部件布局
我正在尝试创建一个向用户展示一些数据的活动。数据可以分为“单词”,每个单词都是一个小部件,“单词”的序列将构成数据(“句子”?),ViewGroup小部件包含这些单词。由于“句子”中所有“单词”所需的空间将超过显示器上可用的水平空间,因此,我希望像包装普通文本一样包装这些“句子”。 如下代码: public class WrapTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout l = new LinearLayout(this); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); LinearLayout.LayoutParams mlp = new LinearLayout.LayoutParams( new ViewGroup.MarginLayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); mlp.setMargins(0, 0, 2, 0); for …



16
sqlite数据库在设备上的位置
我已经使用默认的扩展SQLiteOpenHelper和覆盖方式以编程方式创建了一个sqlite数据库onCreate()。这样,可以在需要时动态创建数据库。 我想使用sqlite浏览器检查OS X机器上db文件的内容。我知道db文件的名称,但是在设备上找不到它。我已经通过USB连接到设备,并使用finder和terminal进行了查找,但是我只是找不到db文件。 Android设备上的sqlite数据库的默认位置是什么?
100 android  sqlite 

7
Android 5.1.1及更高版本-getRunningAppProcesses()仅返回我的应用程序包
看来Google终于关闭了获取当前前景应用程序包的所有门。 棒棒糖更新后,该消息被杀死getRunningTasks(int maxNum),这要归功于此答案,,我使用了以下代码来获取自Lollipop以来的前台应用程序包: final int PROCESS_STATE_TOP = 2; RunningAppProcessInfo currentInfo = null; Field field = null; try { field = RunningAppProcessInfo.class.getDeclaredField("processState"); } catch (Exception ignored) { } ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appList = am.getRunningAppProcesses(); for (RunningAppProcessInfo app : appList) { if (app.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && app.importanceReasonCode == 0 …

16
IOException:读取失败,套接字可能已关闭-Android 4.3上的蓝牙
目前,当我在Nexus 7(2012)和Android 4.3(Build JWR66Y,我想是第二次4.3更新)上打开BluetoothSocket时,我正在尝试处理一个奇怪的异常。我已经看到了一些相关的帖子(例如/programming/13648373/bluetoothsocket-connect-throwing-exception-read-failed),但似乎没有一个解决此问题的方法。同样,如这些线程中所建议的那样,重新配对无济于事,并且不断尝试连接(通过愚蠢的循环)也无效。 我正在处理一个嵌入式设备(无名称的OBD-II汽车适配器,类似于http://images04.olx.com/ui/15/53/76/1316534072_254254776_2-OBD-II-BLUTOOTH-ADAPTERSCLEAR-CHECK-ENGINE- LIGHTS-WITH-YOUR-PHONE-Oceanside.jpg)。我的Android 2.3.7手机没有任何连接问题,并且同事的Xperia(Android 4.1.2)也可以使用。另一个Google Nexus(我不知道是“一个”还是“ S”,但不是“ 4”)在Android 4.3上也失败了。 这是连接建立的代码片段。它在服务内创建的自己的线程中运行。 private class ConnectThread extends Thread { private static final UUID EMBEDDED_BOARD_SPP = UUID .fromString("00001101-0000-1000-8000-00805F9B34FB"); private BluetoothAdapter adapter; private boolean secure; private BluetoothDevice device; private List<UUID> uuidCandidates; private int candidate; protected boolean started; public ConnectThread(BluetoothDevice device, boolean secure) …


9
使用Espresso单击RecyclerView项目内的视图
如何使用Espresso单击RecyclerView项目内的特定视图?我知道我可以使用以下方法在位置0处单击该项目: onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); 但是我需要单击该项目内的特定视图,而不是该项目本身。 提前致谢。 -编辑- 更准确地说:我有一个RecyclerView(R.id.recycler_view),哪些项目是CardView(R.id.card_view)。在每个CardView中,我都有四个按钮(除其他外),并且我想单击特定的按钮(R.id.bt_deliver)。 我想使用Espresso 2.0的新功能,但是我不确定这是可能的。 如果不可能的话,我想使用这样的东西(使用Thomas Keller代码): onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click()); 但我不知道该问些什么。

1
onStartCommand中传递的Intent为NULL的原因
onStartCommand(Intent, int, int)除了系统通过诸如这样的标志重新启动服务之外,传递给Intent的其他任何原因还有START_STICKY吗? 同样,当服务由系统重新启动时,该Intent.getAction()方法有时会返回NULL...。意图不是NULLgetAction() 我也问过这里,但是还没有收到答案。 UPDATE:马克·墨菲聊天后,他建议我返回START_REDELIVER_INTENT的onStartCommand()回调在我的服务,而不是START_STICKY使整个意图在重新启动发送。 最初我没有这样做是因为我担心如果服务正在尝试执行某项操作,那么在此过程中,服务会重新启动...它会认识到它开始执行该操作吗?我想这是我需要负责的逻辑:)

18
有新版本可用时,强制更新Android应用
我在Google Play商店中有一个应用。当有可用的更新版本时,较旧的版本将不可用–也就是说,如果用户不更新应用程序,则他们不会输入应用程序。当有新版本可用时,如何强制用户更新应用程序?
100 android 


28
禁止用户在BottomSheet上拖动
我试图禁止用户拖动BottomSheet。我要禁用的原因有两点。1.防止ListView向下滚动。2.我不希望用户通过拖动来撤消操作,而是使用上的按钮BottomSheetView。这就是我所做的 bottomSheetBehavior = BottomSheetBehavior.from(bottomAnc); bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { if (newState == BottomSheetBehavior.STATE_EXPANDED) { //Log.e("BottomSheet", "Expanded"); } else if (newState == BottomSheetBehavior.STATE_COLLAPSED) { //Log.e("BottomSheet", "Collapsed"); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events bottomSheet.setOnTouchListener(new View.OnTouchListener() …

2
APK(.apk)和应用捆绑包(.aab)之间的区别
最近,Google提出了一项新功能app bundle,除了灵活性和体系结构差异外,它与APK的概念非常相似。 我阅读了很多博客/文章,以了解与APK文件相比,应用程序捆绑包在设备中的工作方式。 从Google Play商店开始,应用捆绑包的实际内部工作流程是什么,以及如何在Android设备上运行?

11
java.lang.IllegalStateException:指定的子代已经有一个父代
当我第一次实例化片段时,我正在使用片段。但是我第二次遇到这个例外。我找不到发生错误的行? 04-04 08:51:54.320: E/AndroidRuntime(29713): FATAL EXCEPTION: main 04-04 08:51:54.320: E/AndroidRuntime(29713): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addViewInner(ViewGroup.java:3013) 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addView(ViewGroup.java:2902) 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addView(ViewGroup.java:2859) 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addView(ViewGroup.java:2839) 04-04 08:51:54.320: E/AndroidRuntime(29713): …

4
Android:在线测试推送通知(Google云消息传递)[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 更新: 不建议使用GCM,请使用FCM 我正在我的应用程序中实现Google Cloud Messaging。服务器代码尚未准备就绪,由于某些防火墙限制,在我的环境中,我无法为推送通知部署测试服务器。我要寻找的是一个在线服务器,它将向我的设备发送一些测试通知以测试我的客户端实现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.