getChangePayload(int oldItemPosition, int newItemPosition)
当 areItemsTheSame(int, int) 对两个项目返回 true 且 areContentsTheSame(int, int) 对它们返回 false 时,DiffUtil 调用此方法来获取有关更改的有效负载。
例如,如果您将 DiffUtil 与 RecyclerView 结合使用,您可以返回项目中更改的特定字段,并且您的 ItemAnimator 可以使用该信息来运行正确的动画。
默认实现返回 null。
重写这个方法有什么好处?
我该如何使用它?
与Android Q中一样,几个WiFi API也受到限制。我正在尝试使用备用API连接到Internet的不同Wifi AP。
下面是我的代码:
WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder();
builder.setSsid("wifi-ap-ssid");
builder.setWpa2Passphrase("wifi-ap-password");
WifiNetworkSpecifier wifiNetworkSpecifier = builder.build();
NetworkRequest.Builder networkRequestBuilder1 = new NetworkRequest.Builder();
networkRequestBuilder1.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
networkRequestBuilder1.setNetworkSpecifier(wifiNetworkSpecifier);
NetworkRequest nr = networkRequestBuilder1.build();
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
cm.requestNetwork(nr, callback);
Run Code Online (Sandbox Code Playgroud)
这使我可以连接,但互联网已禁用。这正在按照Android文档中的定义运行。
我尝试的替代方法如下:
WifiNetworkSuggestion.Builder wifiNetworkSuggestionBuilder1 = new WifiNetworkSuggestion.Builder();
wifiNetworkSuggestionBuilder1.setSsid("wifi-ap-ssid");
wifiNetworkSuggestionBuilder1.setWpa2Passphrase("wifi-ap-password");
WifiNetworkSuggestion wifiNetworkSuggestion = wifiNetworkSuggestionBuilder1.build();
List<WifiNetworkSuggestion> list = new ArrayList<>();
list.add(wifiNetworkSuggestion);
wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.removeNetworkSuggestions(new ArrayList<WifiNetworkSuggestion>());
wifiManager.addNetworkSuggestions(list);
Run Code Online (Sandbox Code Playgroud)
在清单中声明允许:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
Run Code Online (Sandbox Code Playgroud)
使用它并没有改变任何行为。
请告知API序列,以成功连接到具有Internet功能的其他Wifi AP。
android android-wifi android-developer-api android-connectivitymanager android-10.0
我正在按照本指南了解如何让我的应用请求成为设备管理员.
这适用于任何带有任何手机的任何4.x安卓版本,但不适用于棒棒糖(我已尝试使用Nexus 5和Nexus 7).
Logcat鞋出现以下错误:
*11-02 07:37:09.649: W/DeviceAdminAdd(10020): Cannot start ADD_DEVICE_ADMIN as a new task*
Run Code Online (Sandbox Code Playgroud)
还有其他人遇到过Lollipop这个问题吗?可能是什么原因?
我已经浏览了指南的所有部分,并确保我的XML,清单,接收器等都是应有的(并且,它确实适用于我尝试过的任何其他版本的操作系统或手机).
如果重要的话,出于兼容性原因,我正在使用目标API = 17和min API = 14编译我的应用程序.
添加清单文件:
<?xml version='1.0' encoding='utf-8'?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.package"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="com.mycompany.permission.NFProvider_WRITE" />
<uses-permission android:name="com.mycompany.permission.NFProvider_READ" />
<uses-permission android:name="android.permission.READ_LOGS" />
<application
android:name="com.mycompany.myapp.Application"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver
android:name="com.mycompany.myapp.NFAdminReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/admin"/>
<intent-filter> …Run Code Online (Sandbox Code Playgroud) android device-admin android-developer-api android-5.0-lollipop
你好,我正在检查Android 5.0样本,有样本BasicManagedProfile.使用它我已成功创建托管配置文件.但它只管理作为托管应用程序的Market应用程序(从Google Play下载).但我尝试使用自定义说它在市场上没有的HelloWOrld应用程序.它给了我错误" java.lang.IllegalArgumentException:只能通过这种方式启用系统应用程序."
devicePolicyManager.enableSystemApp(
BasicDeviceAdminReceiver.getComponentName(activity), packageName);
Run Code Online (Sandbox Code Playgroud)
我用来启用应用程序的代码.是否有任何方法或API可以在托管配置文件中启用自定义应用程序.
device-policy-manager android-developer-api android-5.0-lollipop
我住在伊朗,谷歌阻止伊朗的互联网用户访问一些像Android开发者网站这样的实用程序.每次我要使用这个网站时,我都必须设置代理,这会占用我的互联网连接的速度,并在其中进行大量的中断.有没有办法下载Android开发者网站以便离线使用它?任何提示或技巧将不胜感激.
这是 Android Studio 设置的问题还是我不知道的其他问题?当我调试应用程序并在某个调试断点(断点不是每次关闭时都固定,它每次都不同)时,它会关闭应用程序并且从不显示在调试选择进程对话框中。要在调试过程中再次获得它,我需要再次运行该应用程序。
为什么这一切会发生,是否需要任何 Android Studio 设置来阻止这一切发生?
我的 Android Studio 版本是 2.2.1。任何帮助将不胜感激。
为了从Android Studio 3.0为调试Android应用程序提供构建,它不会安装在具有Marshmallow及更高版本的Mobile中(在未经测试的Lollipop中).我已经使用了Stack溢出的最大解决方案,但它无法正常工作.它始终显示App Not Installed.
有什么意义
android.os.Debug.waitForDebugger();
Run Code Online (Sandbox Code Playgroud)
我知道我们 [有时] 需要使用此函数来调试 a Service,但我的问题是:
Service必须以这种方式调试,而不是 an Activityor BroadcastReceiver?有人会认为在项目中调试任何类型的代码都很简单。除了它不是。Service反正不是为了。
这个特殊程序存在的原因是什么?它还有什么用途?
等待调试器连接。一旦调试器附加,它就会返回,所以如果你想立即开始跟踪,你需要在 waitForDebugger() 调用之后放置一个断点。
该为什么仍然没有答案。
更新:
我发现了此功能的一个用例:当应用程序进程终止后自动重启 Android 应用程序时。当用户在应用程序设置中切换运行时权限时,该进程将被终止。更一般地说,一个应用程序进程被杀死并重新启动,只要...
android.os.Process.killProcess(android.os.Process.myPid());
Run Code Online (Sandbox Code Playgroud)
叫做。
要在进程重新启动后调试应用程序,请编写android.os.Debug.waitForDebugger()代码,然后将调试器附加到当前进程。
这是此功能的一个用例。
参考资料:
调试服务。
可能相关:
android android-service android-testing android-debug android-developer-api
我在 Android 网站上看到许多关于本地唯一热点的参考
但是,我需要从后台服务以编程方式管理蜂窝热点,就像我可以从下拉菜单中手动执行的那样。
过去这样做是这样的:
method = wifiManager.getClass().getDeclaredMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
method.invoke(wifiManager, wifiConfiguration, activated);
Run Code Online (Sandbox Code Playgroud)
但此功能已被弃用。
我的无线提供商 (AT&T) 试图根据连接的设备和连接方式向我收取不同的费用。网络应该与设备无关,并且只将我的数据包传输到目的地。我希望这没有关系,但我担心我们失去对设备的控制。
Android真的不提供简单的API调用来管理热点吗?
我正在使用该库的 1.1.0 版本浏览Android 开发人员https://developer.android.com/codelabs/camerax-getting-started#3上的 CameraX 教程。日志一开始看起来不错,但后来引发了 TimeoutException 并且相机预览保持黑色:
(omitted)
D/CameraStateRegistry: Recalculating open cameras:
Camera State
-------------------------------------------------------------------
Camera@f35a3d7[id=0] OPEN
Camera@e46a673[id=1] UNKNOWN
-------------------------------------------------------------------
Open count: 1 (Max allowed: 1)
D/CameraStateMachine: New public camera state CameraState{type=OPEN, error=null} from OPEN and null
D/CameraStateMachine: Publishing new public camera state CameraState{type=OPEN, error=null}
D/UseCaseAttachState: All use case: [androidx.camera.core.Preview-c7727ae2-d02c-4135-956c-a76c24deb02d40667318] for camera: 0
D/UseCaseAttachState: Active and attached use case: [androidx.camera.core.Preview-c7727ae2-d02c-4135-956c-a76c24deb02d40667318] for camera: 0
D/Camera2CameraImpl: {Camera@f35a3d7[id=0]} Transitioning camera internal state: OPENED --> OPENED
D/CameraStateMachine: New public camera state …Run Code Online (Sandbox Code Playgroud) android ×9
android-wifi ×2
java ×2
android-10.0 ×1
android-connectivitymanager ×1
device-admin ×1
offline ×1
wifimanager ×1