如何在Activity中獲取呼叫者

2021-10-03 12:14:32 字數 890 閱讀 3654

在activity中獲取呼叫者身份,有兩個作用:乙個是用於安全驗證,另乙個是:記錄呼叫日誌,便於在後續分析日誌,發現非法呼叫。

android中有如下api 可以實現獲取呼叫者:

binder.getcallinguid()binder.getcallingpid(),然後根據uid,pid查詢到包名

activity的getcallingpackage()getcallingactivity()

activity的getreferrer()【注意:android 5.1(api level 22)中才引入的】,直接用過this.getreferrer()獲得。

上述api安全結論:

方法1:需要基於binder機制,不能在呼叫者startactivity()的時候獲取到呼叫者的包名,只能用於activity用到的binder同步呼叫的地方。

方法2: 在特定情況下可以使用getcallingpackage()getcallingactivity(),即如果activity是通過startactivityforresult啟動的,則可以使用。

方法3: activity的getreferrer()是不可靠的,因為呼叫者可以自己設定referrer的值。

));然後再呼叫startactivity(intent).

方法4:是對方法3的改進,消除getreferrer()可能返回的不可靠的值,直接獲取可靠的mreferrer值(目前來看是可靠的)。

如何在activity中使用socket

1.做了乙個專案,需要在activity中實時採集螢幕滑動的坐標,並將坐標傳送給服務端,由於socket不能在activity中直接使用,採用如下辦法,將socket作為內部類 public class socketmotion public void setipandport string ip,...

如何在ant design中獲取mock當中的資料

資料傳引數 第一步 書寫路由及引數 get api usertext 第二步 獲取路徑及書寫方法 services usertest.js importrequestfrom utils request export async functiongetuser export async functi...

如何在頁面中獲取到ModelAndView繫結的值

以下內容 springmvc中通過modelandview進行後台與頁面的資料互動,那麼如何在頁面中獲取modelandview繫結的值呢?1 在jsp中通過el表示式進行獲取 比較常用 後台 modelandview model new modelandview model.addobject n...