是否可以在沒有用戶知識的情況下更改Android 4.4上的默認短信應用程序?我正在嘗試使用反射和調用系統方法在ROOTED Galaxy S5上執行此操作,因此以下是我到目前爲止所做的操作:Android 4.4設置默認的短信應用程序,無需用戶確認
創建了一個小應用程序,實現應用程序成爲SMS管理器所需的所有東西(按http://android-developers.blogspot.in/2013/10/getting-your-sms-apps-ready-for-kitkat.html),我可以讓它默認的短信應用程序,但Android要求我在對話框中確認。現在我探索Android源代碼,我發現在這個類的東西:
所以我想援引國內法:
SmsApplication.setDefaultApplication(mNewSmsApplicationData.mPackageName, this);
通過反射
,這裏是我如何做它至今:
Class[] params = new Class[2];
params[0]=String.class;
params[1]=Context.class;
Class cls = null;
try {
cls = Class.forName("com.android.internal.telephony.SmsApplication");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Method method = null;
try {
method = cls.getDeclaredMethod("getSmsApplicationData", params);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
try {
Object[] params2 = new Object[2];
params2[0]=getPackageName();
params2[1]=getApplicationContext();
Log.d("Current package", getPackageName());
method.invoke(null, params2);
} catch (InvocationTargetException e) {
e.printStackTrace();
}
而且我做了這個應用程序的系統,並把它放入文件夾/系統/私法,應用程序,重新啓動手機,並與亞行成功啓動,但磨片n我點擊上面執行代碼的按鈕,沒有任何反應。沒有錯誤,沒有日誌輸出,但默認的應用程序仍然是消息傳遞(com.android.mms)。
有沒有辦法做到這一點?