我希望得到当前连接的WIFI的名称和存储的连接WIFI的名称.
我发现wifiInfo.getSSID()可以得到正确的结果,比如MyWiFi1,
但是config.SSID中的名称是引号,例如"MyWiFi2".
如何从config.SSID获取正确的名称?谢谢!
public static List<MWiFi> ListPhoneStoredWiFi(Context context) {
List<MWiFi> myWiFiList= new ArrayList<MWiFi>();
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo!=null){
if (wifiInfo.getNetworkId()!=-1){
MWiFi mWiFi=new MWiFi();
mWiFi.name=wifiInfo.getSSID();
mWiFi.networkID=wifiInfo.getNetworkId();
mWiFi.enabled=true;
myWiFiList.add(mWiFi);
}
}
// List stored networks
List<WifiConfiguration> configs = wifiManager.getConfiguredNetworks();
if (configs!=null){
for (WifiConfiguration config : configs) {
if (config.networkId!=wifiInfo.getNetworkId()) {
MWiFi mWiFi=new MWiFi();
mWiFi.name=config.SSID;
mWiFi.networkID=config.networkId;
mWiFi.enabled=true;
myWiFiList.add(mWiFi);
}
}
}
return myWiFiList;
}
Run Code Online (Sandbox Code Playgroud) 我发现我可以在两个File|中设置文件编码和其他参数 Settings...,还有File| Other Settings| Default Settings....但是,我不清楚这两个选项之间的区别是什么.
此外,我可以运行File| Export Settings...将设置保存到settings.jar文件,但我不清楚如果我运行File|,将恢复什么 Import Settings...操作.

文档http://www.jetbrains.com/idea/help/rebuilding-project.html?search=reb只告诉我如何重建项目.
我不知道重建项目是什么意思(Menu --> Build --> Rebuild Project),它会清除所有编辑缓存吗?运行重建项目后,我发现项目的大小减少了吗?
在Android Studio中清除项目意味着什么?
以下代码来自https://kotlinlang.org/docs/reference/functions.html?q=&p=0
此代码计算余弦的固定点,这是一个数学常数.它只是从1.0开始重复调用Math.cos直到结果不再变化,结果为0.7390851332151607.
在我看来,我们无法比较两个浮点数是否相等,所以我认为结果if (x == y)总是假的,对吧?
private fun findFixPoint(): Double {
var x = 1.0
while (true) {
val y = Math.cos(x)
if (x == y) return y
x = y
}
}
Run Code Online (Sandbox Code Playgroud) 当我尝试构建项目1时,我收到以下错误.似乎gradle-3.0.0-beta6和gradle-3.0.0-beta9都不可用.
我在哪里可以找到android studio中最新的gradle版本?你能告诉我一个可以列出所有可用gradle版本的URL吗?
Error:Could not find com.android.tools.build:gradle:3.0.0-beta6.
Searched in the following locations:
file:/E:/Android_Studio_3.1/gradle/m2repository/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.pom
file:/E:/Android_Studio_3.1/gradle/m2repository/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.jar
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.pom
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.jar
Run Code Online (Sandbox Code Playgroud)
项目1
buildscript {
ext.support_version = '26.0.0'
ext.kotlin_version = '1.1.4-3'
ext.anko_version = '0.10.1'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:gradle-3.0.0-beta6'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
}
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个自定义Preference布局,并使用UIPreference.kt显示UI.
我可以简单地处理按钮btnCloseimport kotlinx.android.synthetic.main.layout_preference.*.
现在我希望简单地处理CheckBoxPreference chAutoRestore,但是布局是从xml\mypreference.xml加载的,我该怎么办?
目前,我必须使用该代码 val checkboxPref = preferenceManager.findPreference(getString(R.string.IsAutoRestore)) as CheckBoxPreference
UIPreference.kt
import kotlinx.android.synthetic.main.layout_preference.*
class UIPreference : AppCompatPreferenceActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.layout_preference)
fragmentManager.beginTransaction().replace(R.id.content, MyPreferenceFragment()).commit()
btnClose.setOnClickListener {
finish()
}
}
class MyPreferenceFragment : PreferenceFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
addPreferencesFromResource(R.xml.mypreference)
val checkboxPref = preferenceManager.findPreference(getString(R.string.IsAutoRestore)) as CheckBoxPreference
checkboxPref.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { preference, newValue ->
logError( "Pref " + preference.key + " changed to " + newValue.toString())
true
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
layout_preference.xml …
我已经阅读了文章。https://proandroiddev.com/android-camerax-tap-to-focus-pinch-to-zoom-zoom-slider-eb88f3aa6fc6
我将代码 A 添加到 officecamerx 示例中。 https://github.com/android/camera-samples/tree/master/CameraXBasic
示例代码使用camerax“1.0.0-alpha06”
我收到错误未解决的缩放比例参考,您可以看到图 1,我该如何解决?
代码 A
private fun setUpPinchToZoom() {
val cameraControl = CameraX.getCameraControl(lensFacing)
val cameraInfo = CameraX.getCameraInfo(lensFacing)
val listener = object : ScaleGestureDetector.SimpleOnScaleGestureListener() {
override fun onScale(detector: ScaleGestureDetector): Boolean {
val currentZoomRatio: Float = cameraInfo.zoomRatio.value ?: 0F
val delta = detector.scaleFactor
cameraControl.setZoomRatio(currentZoomRatio * delta)
return true
}
}
val scaleGestureDetector = ScaleGestureDetector(context, listener)
viewFinder.setOnTouchListener { _, event ->
scaleGestureDetector.onTouchEvent(event)
return@setOnTouchListener true
}
}
Run Code Online (Sandbox Code Playgroud)
我正在学习 Android Jetpack,以下代码来自https://github.com/android/sunflower的示例项目。
该GardenPlanting.kt代码是设计一个表格,我很奇怪,为什么笔者在二号位定义表中的字段,您将看到 @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id")位于内之类的。
我认为代码 B 很容易理解,对吧?
GardenPlanting.kt
@Entity(
tableName = "garden_plantings",
foreignKeys = [
ForeignKey(entity = Plant::class, parentColumns = ["id"], childColumns = ["plant_id"])
],
indices = [Index("plant_id")]
)
data class GardenPlanting(
@ColumnInfo(name = "plant_id") val plantId: String,
@ColumnInfo(name = "plant_date") val plantDate: Calendar = Calendar.getInstance(),
@ColumnInfo(name = "last_watering_date")
val lastWateringDate: Calendar = Calendar.getInstance()
) {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
var gardenPlantingId: Long = 0
}
Run Code Online (Sandbox Code Playgroud)
代码 …
我正在通过https://github.com/googlecodelabs/android-paging上的示例代码学习 Room
代码A是定义@Entity一个表的a,大家可以看到。
通常它将@ColumnInfo注释添加到字段中,例如 @ColumnInfo(name = "first_name") val firstName: String?, ....
为什么作者要给@field:SerializedNameRoom数据库的某个字段添加注解?
代码A
@Entity(tableName = "repos")
data class Repo(
@PrimaryKey @field:SerializedName("id") val id: Long,
@field:SerializedName("name") val name: String,
@field:SerializedName("full_name") val fullName: String,
@field:SerializedName("description") val description: String?,
@field:SerializedName("html_url") val url: String,
@field:SerializedName("stargazers_count") val stars: Int,
@field:SerializedName("forks_count") val forks: Int,
@field:SerializedName("language") val language: String?
)
Run Code Online (Sandbox Code Playgroud) 在我在 Android Studio 项目中使用导航图之前,就像文章中所说的那样。
我使用位于文件夹中的 xml 文件res\navigation来包含我所有不同的目的地。
目前,我正在通过文章学习Jetpack Compose Navigation。
代码A来自上面文章提到的官方示例项目。
Jetpack Compose Navigation 似乎使用代码 A 和其他代码进行导航,并且我在res\navigation文件夹中找不到任何 XML 文件。
1:当我使用 Jetpack Compose Navigation 时,导航图是否会被废弃?
res\navigation2:当我使用Jetpack Compose Navigation时,是否不需要再次使用位于文件夹中的导航图?
代码A
@Composable
fun RallyNavHost(navController: NavHostController, modifier: Modifier = Modifier) {
NavHost(
navController = navController,
startDestination = Overview.name,
modifier = modifier
) {
composable(Overview.name) {
OverviewBody(
onClickSeeAllAccounts = { navController.navigate(Accounts.name) },
onClickSeeAllBills = { navController.navigate(Bills.name) },
onAccountClick = { name ->
navigateToSingleAccount(navController, name)
},
) …Run Code Online (Sandbox Code Playgroud)