小编non*_*ame的帖子

使用 Runtime.getRuntime 在 Android 上运行 shell 命令

我正在开发设备管理应用程序(已由制造商签名)。我正在使用它来安装其他应用程序,使用以下用于 android 9 的 adb shell 命令:-

cat /sdcard/Download/myfolder/newapp.apk | pm install -S 1528293
Run Code Online (Sandbox Code Playgroud)

我只是像这样传递它:-

String command = "cat /sdcard/Download/myfolder/newapp.apk | pm install -S 1528293"
Runtime.getRuntime().exec(command);
Run Code Online (Sandbox Code Playgroud)

但我收到错误“猫未知选项 S”。

当我从 adb shell 运行它时,相同的命令工作得很好。不知道我做错了什么,可以使用一些帮助。

编辑 1:- 我尝试运行如下命令:-

String[] commandInstall = {
                "/system/bin/sh",
                "-c",
                "cat /sdcard/Download/myfolder/newapp.apk | pm install -S 1528293"
        };
Process process = Runtime.getRuntime().exec(commandInstall);
Run Code Online (Sandbox Code Playgroud)

但现在我收到错误:-

ava.lang.SecurityException: Reverse mode only supported from shell
    at com.android.server.pm.PackageInstallerSession.doWriteInternal(PackageInstallerSession.java:679)
    at com.android.server.pm.PackageInstallerSession.write(PackageInstallerSession.java:612)
    at android.content.pm.PackageInstaller$Session.write(PackageInstaller.java:852)
    at com.android.server.pm.PackageManagerShellCommand.doWriteSplit(PackageManagerShellCommand.java:2447)
    at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:915)
    at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:158)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21330)
    at android.os.Binder.shellCommand(Binder.java:634)
    at …
Run Code Online (Sandbox Code Playgroud)

java shell android adb

8
推荐指数
1
解决办法
1752
查看次数

搜索操作栏中的窗口小部件不显示默认文本

嗨我的应用程序的操作栏中的搜索小部件由于某种原因没有显示默认文本.我相信我可能会遗漏一些东西.代码如下所示: -

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    try{
        SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
        searchView.setOnQueryTextListener(this);
        }catch(Exception e){
            Log.v(TAG,"inflated"+e.getMessage()+"--"+e.getClass()+"-"+e.getClass());
        }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

菜单/ activity_main

<menu xmlns:android="http://schemas.android.com/apk/res/android">

   <item android:id="@+id/action_search"
      android:title="@string/search_title"
      android:icon="@android:drawable/ic_menu_search"
      android:showAsAction="ifRoom|collapseActionView"
      android:actionViewClass="android.widget.SearchView" />
 </menu>
Run Code Online (Sandbox Code Playgroud)

值/ strings.xml中

<resources>
<string name="search_title">Search Data</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

搜索小部件工作正常,唯一的是默认文本"搜索数据"没有显示..有人能告诉我我做错了什么

android

3
推荐指数
1
解决办法
2642
查看次数

标签 统计

android ×2

adb ×1

java ×1

shell ×1