2011-02-15 24 views
0

我有一個使用LVL的應用程序。它包含兩個活動(爲簡單起見):第一個稱爲LVLActivity的許可證。如果它失敗了,它就簡單地完成了,否則就會以明確的意圖啓動第二項名爲MainActivity的活動。LVL和顯式意圖的應用程序保護?

在清單中,有

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".LVLActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 
    </activity> 
    <activity android:name=".MainActivity"> 
    </activity> 
</application> 

是否有可能爲別人寫的一個小應用程序,有明確的意圖啓動在MainActivity?
這種設置是否足以獲得合理的保護?

回答

1

我相信MainActivity可以從另一個應用程序通過啓動:

Intent intent = new Intent(); 
intent.setComponent(new ComponentName("com.package", "com.package.MainActivity")); 
startActivity(intent); 

所以,不,這不會保護您的MainActivity本身,而是你可以有某種LVLActivity和MainActivity之間需要共享數據,所以如果這個數據不存在,MainActivity會停止。

但被告知,即使是這樣也不能阻止誰可以逆向工程代碼的用戶。爲防止出現這種情況,您不應在設備上的應用程序內部存在任何敏感數據 - 這基本上意味着您應該在服務器上執行所有業務邏輯,並只將對給定用戶安全的數據發送回設備。當然,你需要在服務器上進行某種用戶認證+授權。

0

你爲什麼不這樣做你的主要活動許可證檢查?這是谷歌recommend的方式。

除此之外,你隨時都可以進行許可檢查,但@Peter Knego是說,如果有人真的想繞過許可檢查,那麼他們將這樣做是正確的。