小编Uma*_*ari的帖子

应用内更新给出 InstallException (ERROR_API_NOT_AVAILABLE)

使用以下代码片段实现了应用内更新功能:

private void showInAppUpdateDialog(boolean isMandatoryUpdate) {
    Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();

    appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
        if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                || appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {

            int appUpdateType = isMandatoryUpdate ? IMMEDIATE : AppUpdateType.FLEXIBLE;
            int requestCode = isMandatoryUpdate ? REQUEST_APP_UPDATE_IMMEDIATE : REQUEST_APP_UPDATE_FLEXIBLE;

            if (appUpdateInfo.isUpdateTypeAllowed(appUpdateType)) {
                // start the app update
                try {
                    appUpdateManager.startUpdateFlowForResult(appUpdateInfo, appUpdateType, targetActivity, requestCode);
                } catch (IntentSender.SendIntentException e) {
                    e.printStackTrace();
                }
            }
        }
    }).addOnFailureListener(e -> {
        e.printStackTrace();
    });
}
Run Code Online (Sandbox Code Playgroud)

我正在安装 Android 9 的设备上测试应用程序内更新。 尽管如此,它仍然给我以下错误(ERROR_API_NOT_AVAILABLE):

com.google.android.play.core.install.InstallException: Install Error(-3): The API is not available …
Run Code Online (Sandbox Code Playgroud)

android in-app-update google-play-core

16
推荐指数
3
解决办法
4722
查看次数

Swift:函数调用之间的区别

我是Swift编程的新手.我无法理解以下代码.在以下代码中调用

  1. incrementBy方法:我必须在第二个参数中键入numberOfTimes.但,
  2. sampleFunc方法:我不必在第二个参数中键入lastName.

    class Counter {
    var count: Int = 0
    func incrementBy(amount: Int, numberOfTimes : Int) {
        count += amount * numberOfTimes
    }
    }
    
    var counter = Counter()
    counter.incrementBy(1, numberOfTimes : 3)
    print(counter.count)
    
    func sampleFunc(firstName : String, lastName : String){
    print("Hello \(firstName) \(lastName)")
    }
    
    sampleFunc("Abel", "Rosnoski")
    
    Run Code Online (Sandbox Code Playgroud)

为什么会有细微差别?请解释.

iphone ios swift

4
推荐指数
1
解决办法
404
查看次数

Android 中带手势(滑动功能)的 VideoView

我想结合默认的VideoView手势侦听器

如果用户向左滑动则歌曲向后播放或向右滑动则歌曲向前播放,我想在 VideoView 上实现同样的方法。

通过以下代码打开默认媒体播放器:

Intent intent = new Intent("android.intent.action.MUSIC_PLAYER");
    startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

那么如何添加手势监听器..?

android gesture audio-player android-music-player

2
推荐指数
1
解决办法
4574
查看次数

Android:通过Activity中的LiveData和ViewModel观察Room DB

我创建了一个基本示例,其中的活动是通过 LiveData 观察房间数据库。欲了解更多信息,请查看以下代码:

    @Dao
    interface NoteDao {
        @Query("SELECT * FROM note ORDER BY date_created DESC")
        fun getAll(): LiveData<List<Note>>
    }

    // Repository
    class ReadersRepository(private val context: Context) {
        private val appDatabase = Room.databaseBuilder(context, AppDatabase::class.java, DATABASE_NAME)
                    .build()
        fun getAllNotes(): LiveData<List<Note>> {
            return appDatabase.getNoteDao().getAll()
        }
    }

    // ViewModel   
    class AllNotesViewModel(application: Application) : AndroidViewModel(application) {
        private val repository = ReadersRepository(application)
        internal var allNotesLiveData: LiveData<List<Note>> = repository.getAllNotes()
    }

    // Activity
    class MainActivity : BaseActivity<AllNotesViewModel>() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            setSupportActionBar(toolbar)

            viewModel.allNotesLiveData.observe(this, Observer …
Run Code Online (Sandbox Code Playgroud)

android android-room android-livedata android-viewmodel

2
推荐指数
1
解决办法
2288
查看次数