android 10 剪切板權限的處理

剪貼板數據的訪問權限

在Android10上面,除非應用是默認輸入法 (IME) 或是目前處于焦點的應用,否則它無法訪問 Android 10 或更高版本平臺上的剪貼板數據。文檔鏈接

適配方案

方案一:在onResume中,通過post延時到界面擁有焦點時讀取剪切板

@Override

protected void onResume() {

super.onResume();

getWindow().getDecorView().post(new Runnable() {

@Override

public void run() {

mBinding.clipText.setText(getClipData(MainActivity.this));

}

});

}

方案二:在onCreate中,通過addOnWindowFocusChangeListener去監聽當且界面的焦點變化,不過需要記得的是,讀取完剪切板需要remove監聽

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

getWindow().getDecorView().getViewTreeObserver().addOnWindowFocusChangeListener(new ViewTreeObserver.OnWindowFocusChangeListener() {

@Override

public void onWindowFocusChanged(boolean hasFocus) {

if (hasFocus) {

mBinding.clipText.setText(getClipData(MainActivity.this));

getWindow().getDecorView().getViewTreeObserver().removeOnWindowFocusChangeListener(this);

}

}

});

}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容