- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使我的 map 应用程序重定向到位置权限设置,一旦授予权限,就会再次重定向到应用程序。由于某种原因,我的 onActivityResult
在启动 Activity Intent 后甚至没有被调用。基本上发生的情况是,当我单击出现的 snackbar
操作按钮时,它会启动 settingsIntent 并将我很好地重定向到设置,但 Activity 不会进入结果状态并且 onActivityResult
从未被调用过有什么建议吗?
这是代码:
class MapsActivity : AppCompatActivity(), OnMapReadyCallback {
private lateinit var mMap: GoogleMap
private fun checkPermissions(): Boolean {
//returns true if granted permission for location
var checker = ActivityCompat.checkSelfPermission(
applicationContext,
android.Manifest.permission.ACCESS_COARSE_LOCATION
) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
applicationContext,
android.Manifest.permission.ACCESS_FINE_LOCATION
) == PackageManager.PERMISSION_GRANTED
if (checker) {
Log.d(TAG, "granted Permissions")
} else {
Log.d(TAG, "no Permissions granted")
}
return checker
}
@RequiresApi(Build.VERSION_CODES.M)
private fun requestPermissions() {
requestPermissions(
arrayOf(
android.Manifest.permission.ACCESS_COARSE_LOCATION,
android.Manifest.permission.ACCESS_FINE_LOCATION
), PERMISSION_ID
)
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (!checkPermissions()) {
Snackbar.make(
map.view!!,
"Please Enable Location Permission",
Snackbar.LENGTH_INDEFINITE
).setAction("Enable Location",
View.OnClickListener {
var settingsIntent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
startActivityForResult(settingsIntent, 1)
})
.show()
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
Log.d(TAG, "Redirected to settings for Location Permissions ")
if (resultCode == Activity.RESULT_OK) {
if (checkPermissions()) {
Log.d(TAG, "Permissions granted from settings")
startActivity(Intent(this, MapsActivity::class.java))
}
}
super.onActivityResult(requestCode, resultCode, data)
}
override fun onCreate(savedInstanceState: Bundle?) {
Log.d(TAG, "onCreate called")
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
val mapFragment = supportFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
}
@RequiresApi(Build.VERSION_CODES.M)
override fun onMapReady(googleMap: GoogleMap) {
Log.d(TAG, "omMapReady:starts")
mMap = googleMap
requestPermissions()
}
}
list :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.burgertracker">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
最佳答案
这对我有用,
MainActivity
import android.content.Intent
import android.os.Bundle
import android.provider.Settings
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<TextView>(R.id.tv_click).setOnClickListener {
val settingsIntent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
startActivityForResult(settingsIntent, 1)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
Toast.makeText(this, "Hakuna Mattat", Toast.LENGTH_SHORT).show()
}
}
activity_main_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demointentapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
当我单击 TextView
时,我导航到“设置”页面上MainActivity
当我从“设置”页面按回时,我看到 Toast
留言Hakuna Mattat
每次。
关于java - onActivityResult() 未调用(MapFragment),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60805892/
我想制作一个使用 Google Maps for Android v2 的 Android 应用程序。 我可以显示一张 map 。我什至可以导航和缩放。但是,当我想搜索要进行的更多操作时,我找不到任何
我正在按照本教程制作抽屉导航: https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer 我的 fragme
我一直在Navigation Drawer Activity 中工作,它有很多 fragment ,其中一个 fragment 包含MapFragment。 现在 MapFragment 中出现问题,
我的应用程序中有一个 MapFragment 和常规 fragment 。问题是当我在 fragment 之间切换时,MapFragment 在后台。我有代码来查找 MapFragment 是否存在,
我遇到了以下错误 Skipped 40 frames! The application may be doing too much work on its main thread. 对此进行了研究.
我有一个包含 MapFragment 的 View 我的 mainViewPanel 看起来像这样 我的翻译代码是这样的 TranslateAnimation anim = new Transl
我想知道实现带抽屉导航的 MapFragment 的正确方法是什么。我已经可以很好地工作了,但我一直在阅读一些文档,也许它会在未来造成麻烦。 所以,我实现了抽屉导航的主类是一个非常普通的类,具有以下
将 MapFragment 与操作栏菜单一起使用时,我遇到了性能问题。 当满足三个条件时就会出现错误 实例化一个 MapFragment。 从选项菜单触发 fragment 事务,用另一个 fragm
我正在尝试构建一个将实现操作栏选项卡的应用程序。其中一个选项卡应包含一个 MapFragment。 如何实现带有选项卡的操作栏,其中一个选项卡下方是 map fragment ? 你能帮我解决这个问题
我正在使用 MapFragment,我的 Activity 布局是这样的: 如果我想使用 CameraUpdateFactory.newLatLngBounds(LatLngBounds, padd
我正在尝试将我的 ActionBar 迁移到 AppCompat 21 方式(使用设置为用作 ActionBar 的工具栏小部件),但它没有显示或被 MapFragment 隐藏。 这是我的 Acti
我有一个位置类,它在 MapFragment 上创建一个实例,并且根据创建 map 的 Activity ,将放置不同的标记。我还希望 map 显示手机当前位置的标记。 我假设我可以做这样的事情,但我
我正在尝试使我的 map 应用程序重定向到位置权限设置,一旦授予权限,就会再次重定向到应用程序。由于某种原因,我的 onActivityResult 在启动 Activity Intent 后甚至没有
我目前正在调整 Google Map MapFragment View 的大小(从全屏高度到半屏)。我使用 ValueAnimator 来实现此目的,但动画在设备 (Nexus 6p) 上似乎滞后。我
我有一个使用 Google map fragment 的应用程序,我想以某种方式设置用户可以使用 map fragment 中提供的 +/- 图标达到的缩放级别限制。 有什么已知的方法可以做到这一点吗
有没有什么方法可以在不使用 XML 的情况下以编程方式将 Button 添加到 MapFragment 或直接添加到 GoogleMap 对象? 谢谢! 最佳答案 当然有,当然不是直接到 map fr
我有一个 Activity 和 MapFragment 类。我在 Activity 中创建了 MapFragment 对象。当我尝试获取 mapFragmentObject.getView() 时,它
我正在尝试在 Android Studio 中显示来自 ArcGis 的 MapView。为此,我正在使用 Map Fragments,我将 Map 和其他 UI 内容放入 xml 中。将 MapVi
我正在尝试在 PagerAdapter 中加载 Mapfragment。这是适配器代码, public class ShopPagerAdapter extends PagerAdapter {
我查看了文档,但找不到 MapFragment 只显示左下角带有 Google Logo 的灰色屏幕的任何原因。在我的 list 中,我有应用程序级别的适当元数据(GMS 版本号和 api key )
我是一名优秀的程序员,十分优秀!