簡體   English   中英

如何在沒有扎根手機的情況下拍攝android屏幕截圖而不是自己的活動視圖?

[英]how to take screen shot of android screen not own activity view without rooted phone?

我已經寫了代碼。

public static void loadBitmapFromView(Context context, View v) {
    DisplayMetrics dm = context.getResources().getDisplayMetrics(); 
    v.measure(MeasureSpec.makeMeasureSpec(dm.widthPixels, MeasureSpec.EXACTLY),
            MeasureSpec.makeMeasureSpec(dm.heightPixels, MeasureSpec.EXACTLY));
    v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
    Bitmap returnedBitmap = Bitmap.createBitmap(v.getMeasuredWidth(),
            v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(returnedBitmap);
    v.draw(c);

    takeScreen(returnedBitmap);
}

public static void takeScreen(Bitmap bitmap) {
    //Bitmap bitmap = ImageUtils.loadBitmapFromView(this, view); //get Bitmap from the view
    String mPath = Environment.getExternalStorageDirectory() + File.separator + "screen_" + System.currentTimeMillis() + ".jpeg";
    File imageFile = new File(mPath);

    try {
        OutputStream fout = new FileOutputStream(imageFile);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
        fout.flush();
        fout.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

視圖在哪里

View v1 = getWindow().getDecorView().findViewById(android.R.id.content).getRootView();

但這是我們應用程序當前活動的屏幕截圖。 我想顯示我的android當前屏幕而不是自己當前的活動屏幕。請提供解決方案。

不能在非root用戶的設備上執行此操作。 這是Android安全性的基石之一-應用程序不能干擾其他應用程序或對其進行監視。

從本質上講,截取另一個應用程序屏幕快照。 例如,假設您從不太可靠的來源下載並安裝了一些有趣的游戲或無用的實用程序。 如果可以截取不屬於自己的活動的屏幕截圖,那么該游戲將能夠截取您在網絡瀏覽器中輸入銀行密碼並將其發送回該應用程序的惡意開發者的屏幕截圖。 那將是一場災難,不是嗎?

由於您證明已經有第三方應用程序(而不是三星應用程序)可以在某些三星設備上拍攝任何應用程序的屏幕截圖。

我建議您嘗試: http : //developer.samsung.com/home.do

如果他們的屏幕快照中沒有明顯的關於截屏的信息。 我建議您看看Samsung AllShare / Miracast SDK AllShare是Samsung自己的MiraCast擴展。 就像DNLA(如果您知道DNLA是什么)。 它允許開發人員/或用戶在支持協議的電視上無線投影屏幕。

如果搜索沒有成功,請查看s.pen sdk 並嘗試看看他們是否公開了使用三星筆為第三方開發人員拍攝屏幕截圖的方法。 現在,我意識到您的三星手機沒有筆,但是由於三星設備之間有很多TouchWiz共享代碼。 如果找到暴露的公共掛鈎供spen用來拍攝屏幕快照,則可以在沒有該spen的Samsung設備上找到它。

附帶說明一下,如果您願意支持僅Tegra設備。 甚至只有一些HTC設備和Xiomi設備使用Tegra,因此市場份額不是很大。 這似乎也是可能的:

https://play.google.com/store/apps/details?id=net.tedstein.AndroSS

為此,我建議您研究HTC SDK和Nvidia Tegra Development Pack 抱歉,我沒有更多時間為您研究這些解決方案。 請在這里報告,以告訴我們您的發現,無論是正面還是負面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM